Linux-文件的cp本地拷贝scp远程拷贝

本文详细介绍了在Linux环境下如何使用cp命令进行本地文件或文件夹的复制,以及如何利用scp命令实现文件的远程复制。通过具体示例,读者可以掌握不同场景下复制操作的正确用法。

文件或文件夹的复制命令

1.cp命令本地拷贝

命令:cp dir1/a.txt dir2 表示将dir1下的a.txt文件复制到dir2目录下

cp -r dir1 dir2 表示将dir1及其dir1下所包含的文件复制到dir2下

cp -r dir1/. dir2 表示将dir1下的文件复制到dir2,不包括dir1目录

说明:cp参数 -i:询问,如果目标文件已经存在,则会询问是否覆盖;

2.scp命令远程拷贝

例如想把 192.168.0.102 机器上的 /home/walking/data/name.txt 文件拷贝到 192.168.0.101 机器上的 /home/walking/data 目录下,可以使用命令:

scp /home/walking/data/name.txt root@192.168.0.101:/home/walking/data

同 cp 一样,如果复制的是整个文件夹的内容,则应使用 scp -r 命令。

命令解释:

/home/walking/data/name.txt 要传输的文件

root 目标服务器ssh账号名

@后面 目标服务器的IP地址

IP后的冒号后面 要传输到目标服务器的文件保存目录

Linux 中,`cp` 命令用于**复制文件和目录**。它是最基础且常用的命令之一。 --- ## ✅ 基本语法 ```bash cp [选项] 源文件 目标文件 ``` 或复制多个文件到一个目录: ```bash cp [选项] 源文件1 源文件2 ... 目标目录 ``` --- ## 🧪 常见用法示例 ### 1. 复制单个文件 ```bash cp file.txt /backup/ ``` > 将 `file.txt` 复制到 `/backup/` 目录下,保持原名。 --- ### 2. 复制并重命名 ```bash cp file.txt /backup/file_backup.txt ``` > 将 `file.txt` 复制为 `/backup/file_backup.txt`(新名字)。 --- ### 3. 递归复制目录(重要!) ```bash cp -r mydir/ /backup/mydir/ ``` > `-r`(或 `--recursive`)表示递归复制整个目录及其子目录、文件。 ⚠️ 注意:没有 `-r` 无法复制目录,会报错: ``` cp: -r not specified; omitting directory 'mydir/' ``` --- ### 4. 强制覆盖已有文件 ```bash cp -f file.txt /target/ ``` > `-f` 表示强制覆盖目标位置的同名文件(忽略只读属性等)。 --- ### 5. 复制时保留权限、时间戳等属性 ```bash cp -p file.txt /backup/ ``` > `-p` 保留文件的: - 修改时间和访问时间 - 所有者和组(如果权限允许) - 权限模式(如 `755`) 常用组合:`-a` 已包含此功能。 --- ### 6. 归档模式:保留所有属性(推荐用于备份) ```bash cp -a mydir/ /backup/mydir/ ``` > `-a` 是归档模式,相当于 `-dpr`: - `-d`:不解析符号链接(复制链接本身) - `-p`:保留属性 - `-r`:递归复制 👉 **这是备份目录的最佳方式** --- ### 7. 显示复制过程 ```bash cp -v file.txt /backup/ ``` > `-v`(verbose)显示详细操作信息,例如: ``` 'file.txt' -> '/backup/file.txt' ``` 可以和其他选项组合使用,如:`cp -av mydir/ /backup/` --- ### 8. 不覆盖已存在的文件 ```bash cp -n file.txt /backup/ ``` > `-n` 表示“不要覆盖”,如果目标文件存在则跳过。 --- ### 9. 交互式复制(询问是否覆盖) ```bash cp -i file.txt /backup/ ``` > `-i`:在覆盖前提示确认。 系统默认 alias 可能已设置 `cp='cp -i'`,防止误删/覆盖。 --- ### 10. 同时使用多个选项(组合) ```bash cp -av /home/user/docs/ /backup/docs/ ``` > 安全地递归复制目录,并保留所有属性,同时显示进度。 --- ## ⚠️ 注意事项 | 问题 | 说明 | |------|------| | `cp` 不会删除源文件 | 复制后源文件仍然存在 | | 目标是目录时必须加 `/` 或明确路径 | 推荐写法:`cp a b dir/` | | 使用通配符注意匹配范围 | 如 `*.txt` 只复制 `.txt` 文件 | | 跨设备复制大文件建议用 `rsync` | 更高效、支持断点续传 | --- ## 🔁 对比其他复制命令 | 命令 | 用途 | |------|------| | `cp` | 简单快速复制本地文件 | | `rsync` | 同步大量文件远程复制、增量备份 | | `scp` | 安全复制到远程主机(基于 SSH) | | `mv` | 移动/重命名,不是复制 | --- ## ✅ 总结:常用命令汇总 | 功能 | 命令 | |------|------| | 复制文件 | `cp file.txt dest/` | | 复制并重命名 | `cp file.txt newfile.txt` | | 复制目录 | `cp -r dir/ dest/` | | 安全备份目录 | `cp -a dir/ backup/` | | 显示复制过程 | `cp -v ...` | | 防止覆盖 | `cp -n ...` 或 `cp -i ...`(询问) | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员beige

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值