002 cp命令
命令说明
cp(copy)用于复制文件或目录,可以把一个或多个源文件复制到指定的目标文件或目录中。
语法
cp [选项]... 源文件 目标文件 cp [选项]... 源文件... 目标目录
常用参数
| 参数 | 说明 |
|---|---|
| -i | 交互模式,覆盖前提示确认 |
| -r / -R | 递归复制目录(复制目录必加) |
| -a | 归档模式,保留链接、权限、时间戳等属性,等价于 -dR --preserve=all,备份时常用 |
| -p | 保留源文件的权限、所有者和时间戳 |
| -u | 只在源文件比目标新或目标不存在时才复制 |
| -f | 强制复制,目标存在时先删除再复制 |
| -v | 显示复制过程 |
| -n | 不覆盖已存在的文件 |
使用示例
$ cp a.txt b.txt
把 a.txt 复制为 b.txt
$ cp a.txt /backup/
把 a.txt 复制到 /backup/ 目录下
$ cp a.txt b.txt /data/
同时复制多个文件到 /data/ 目录
$ cp -r /opt/app /opt/app.bak
递归复制整个 app 目录为 app.bak
$ cp -a /var/www/ /backup/www/
完整保留属性地备份网站目录
$ cp -i conf.conf /etc/app/
复制并在覆盖前提示确认
$ cp -u *.log /archive/
只复制更新的日志文件
实用技巧
- 很多发行版默认 alias cp="cp -i",脚本中若要静默覆盖可用 \cp 或 command cp。
- 复制目录时 -r 与 -a 的区别:-a 会保留符号链接、权限、属主和时间戳,做迁移和备份优先用 -a。
- cp 复制会更新目标文件的修改时间;如需保留原时间戳加 -p。