做什么
复制文件或目录。
常用参数
| 参数 | 含义 |
|---|---|
-r / -R |
递归复制目录 |
-i |
覆盖前问 |
-f |
强制覆盖(不问) |
-n |
不覆盖已存在的 |
-u |
仅复制新的 / 修改过的 |
-a |
归档模式(保留所有属性,等同 -dR --preserve=all) |
-p |
保留模式 / 时间戳 / 所有者 |
-v |
显示过程 |
-l |
建硬链接而不是复制 |
-s |
建软链接而不是复制 |
实战
cp a.txt b.txt # 文件 → 文件
cp a.txt /tmp/ # 文件 → 目录
cp *.log /backup/ # glob:所有 log 到 /backup
cp -r src/ dest/ # 递归复制目录
cp -a src/ dest/ # ★ 推荐:完整克隆(属性 / 链接 / 时间都保留)
cp -p file.txt /tmp/ # 保留时间戳和权限
cp -u src/* /backup/ # 增量:只复制新的或改过的
大量文件用 rsync
# rsync 更强:可断点续传 + 显示进度 + 排除
rsync -av --progress src/ dest/
坑
cp src/ dest/(带斜杠) vscp src dest/:cp -a src/ dest/→ src 里的内容复制到 dest 里cp -a src dest/→ src 文件夹本身复制成 dest/src
- 默认不保留时间戳——重要时加
-p或-a - 跨文件系统复制大文件慢但稳;同文件系统
mv是瞬间(只改指针)