在 Linux 系统中,复制文件和目录主要通过 cp
命令实现。以下是详细用法和常见场景:
cp 源文件 目标路径
示例:将 file1.txt
复制到 /home/user/documents/
cp file1.txt /home/user/documents/
cp 源文件 目标路径/新文件名
示例:复制 file1.txt
到目标目录并重命名为 file2.txt
cp file1.txt /home/user/documents/file2.txt
使用 -r
或 -R
参数复制目录及其内容:
cp -r 源目录 目标路径
示例:复制 mydir
目录到 /backup/
cp -r mydir /backup/
使用 -p
保留权限、时间戳等元数据:
cp -p 源文件 目标路径
示例:保留原文件属性复制
cp -p important.log /backup/
使用 -f
强制覆盖目标文件(慎用):
cp -f 源文件 目标路径
使用 -i
在覆盖前提示确认:
cp -i 源文件 目标路径
输出示例:
cp: overwrite '目标路径/file1.txt'? y/n
使用 -v
显示详细操作过程:
cp -v 源文件 目标路径
输出示例:
'file1.txt' -> '/home/user/documents/file1.txt'
cp 文件1 文件2 文件3 目标目录/
示例:
cp *.txt /backup/ # 复制所有.txt文件到/backup/
cp
会复制链接指向的原始文件。bash
cp -P 源链接 目标路径
scp
(安全复制到远程服务器):bash
scp file.txt user@remote:/path/to/destination/
rsync
(高效同步):bash
rsync -avz 源文件 user@remote:/目标路径/
cp
默认静默覆盖目标文件,建议用 -i
或 -n
(不覆盖)避免误操作。sudo
。rsync
支持断点续传和进度显示。# 递归复制目录,保留属性并显示进度
cp -rpv sourcedir/ /backup/
# 复制所有.jpg文件到目标目录,覆盖前确认
cp -i *.jpg /photos/
掌握这些命令后,可以灵活应对大多数复制需求!