cp
是 Linux 系统中用于复制文件和目录的核心命令。作为 IT 工程师,以下是关于 cp
命令的详细说明和实用技巧:
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
选项 | 作用 |
---|---|
-i |
覆盖前提示确认(交互模式) |
-n |
禁止覆盖已存在文件 |
-r /-R |
递归复制目录(包括子目录) |
-v |
显示详细操作过程 |
-u |
仅复制源中更新或缺失的文件 |
-p |
保留原文件的属性(权限、时间戳等) |
-a |
归档模式(相当于 -rp ,保留所有属性) |
-l |
创建硬链接而非复制 |
-s |
创建软链接(符号链接) |
复制文件到目标路径
cp file.txt /backup/ # 复制到目录
cp file1.txt file2.txt dir/ # 复制多个文件到目录
递归复制目录
cp -r /source/dir /backup/ # 复制目录及其内容
保留文件属性(适用于备份)
cp -pa /var/www /backup/ # 保留权限、时间戳等
仅更新差异文件
cp -u *.log /backup/ # 仅复制更新的日志文件
创建链接而非复制
cp -s /opt/app/config.conf /etc/ # 创建符号链接(节省空间)
覆盖风险
cp
会静默覆盖目标文件,建议高危操作前添加 -i
选项或使用别名:
bash
alias cp='cp -i' # 加入 ~/.bashrc 永久生效
通配符处理
bash
cp *.pdf ~/docs/ # 复制所有PDF文件
权限问题
Permission denied
,需使用 sudo
提权。特殊文件
/dev/sda
)需使用 -a
选项保持属性。结合 find
选择性复制
find /src -name "*.conf" -exec cp {} /backup/ \;
排除特定文件
rsync -av --exclude='temp/' /source/ /backup/ # 需安装 rsync
显示进度(需安装 pv
)
pv source.iso > destination.iso
rsync
:更强大的增量同步工具,支持断点续传、远程复制等。dd
:适用于块设备或二进制文件的精确复制(如磁盘克隆)。掌握 cp
命令的灵活使用能显著提升文件管理效率,尤其在自动化脚本和系统维护中。建议通过 man cp
查阅完整手册。