在 Linux 系统中,拷贝(复制)文件或目录主要使用 cp (copy) 命令。根据你要拷贝的是普通文件还是整个目录,命令会有所不同。以下是具体的操作方法和常用参数:
1. 拷贝普通文件
如果只需要复制单个文件到指定位置,直接使用 cp 命令即可:
bash
编辑
bash
cp 源文件路径 目标位置
示例:
-
将
test.txt复制到/home/user/documents/目录下:bash
编辑
bashcp test.txt /home/user/documents/ -
复制文件并重命名:
bash
编辑
bashcp test.txt /home/user/documents/new_test.txt
2. 拷贝目录(文件夹)
拷贝目录时,必须 加上 -r (recursive,递归) 参数,否则系统会提示"省略目录"。
bash
编辑
bash
cp -r 源目录路径 目标位置
示例:
-
将
my_folder整个目录复制到/backup/目录下:bash
编辑
bashcp -r my_folder /backup/
3. 常用进阶参数
为了更安全、高效地进行拷贝,你可以组合使用以下参数:
-
-a(归档模式):生产环境首选 。相当于-r+-p,不仅能递归复制目录,还能保留文件的权限、时间戳、属主以及软链接等所有属性,非常适合做完整备份。bash
编辑
bashcp -a 源目录 目标位置 -
-v(显示过程):在拷贝大量文件时,可以显示复制的进度和正在处理的文件名,让你知道程序还在运行。bash
编辑
bashcp -rv 源目录 目标位置 -
-i(交互模式):安全防误删。当目标位置已存在同名文件时,系统会询问你是否覆盖。bash
编辑
bashcp -i 源文件 目标位置 -
-f(强制覆盖):强制覆盖目标位置的同名文件,不进行任何提示(在脚本中常用,但需谨慎)。bash
编辑
bashcp -f 源文件 目标位置 -
-u(增量更新):仅当源文件比目标文件新,或者目标文件不存在时才进行复制。适合做增量备份。bash
编辑
bashcp -u 源文件 目标位置
💡 实用小贴士
- 防误操作 :很多 Linux 发行版默认将
cp设置为了cp -i的别名。如果你不想被反复询问是否覆盖,可以在命令前加反斜杠\cp来绕过别名,例如:\cp -rf 源目录 目标位置。 - 批量拷贝 :可以使用通配符
*批量拷贝特定类型的文件,例如cp *.txt /目标目录/。 - 大文件/复杂同步 :如果涉及海量文件、跨网络传输或需要排除某些文件,建议使用更强大的
rsync命令(如rsync -avz 源目录/ 目标目录/)。