上一篇                     
               
			  linux下如何复制文件夹
- Linux
- 2025-07-13
- 3168
 Linux下,使用
 
 
cp -r [源文件夹路径] [目标文件夹路径]命令可复制文件夹
Linux系统中,复制文件夹是一个常见的操作,可以通过多种命令来实现,以下是几种常用的方法和相关说明:
使用cp命令
 
| 选项 | 含义 | 示例 | 
|---|---|---|
| -r或-R | 递归复制,用于复制目录及其子目录和文件 | cp -r source_folder destination_folder | 
| -a | 归档模式,保留所有属性(权限、时间戳、符号链接等),相当于 -dR --preserve=all | cp -a source_folder destination_folder | 
| -i | 交互式,覆盖文件前提示用户确认 | cp -ri source_folder destination_folder | 
| -u | 仅更新目标文件夹中较旧的文件 | cp -ru source_folder destination_folder | 
| -v | 显示详细的复制过程信息 | cp -rv source_folder destination_folder | 
示例
假设要将/home/user/docs文件夹复制到/backup/docs,可以使用以下命令:
cp -r /home/user/docs /backup/docs
如果希望保留所有属性,可以使用-a选项:
cp -a /home/user/docs /backup/docs
使用rsync命令
 
rsync是一款功能强大的文件同步和复制工具,特别适合远程传输和增量备份。

| 选项 | 含义 | 示例 | 
|---|---|---|
| -a | 归档模式,保留所有属性 | rsync -a source_folder/ destination_folder/ | 
| -v | 显示详细输出 | rsync -av source_folder/ destination_folder/ | 
| -z | 压缩传输数据 | rsync -az source_folder/ destination_folder/ | 
| --delete | 删除目标目录中源目录不存在的文件 | rsync -av --delete source_folder/ destination_folder/ | 
| -P | 显示进度并支持断点续传 | rsync -avzP source_folder/ destination_folder/ | 
示例
将本地文件夹/home/user/docs同步到/backup/docs:
rsync -av /home/user/docs/ /backup/docs/
注意:源路径和目标路径末尾的斜杠表示复制目录内容而非目录本身。
使用tar命令
 
虽然tar主要用于打包和解包,但结合管道和重定向,也可以实现文件夹的复制。

示例
将/home/user/docs文件夹打包为docs.tar并复制到/backup/:
tar -cvf docs.tar /home/user/docs cp docs.tar /backup/ cd /backup/ && tar -xvf docs.tar
如果需要压缩传输,可以使用-cz选项:
tar -czvf docs.tar.gz /home/user/docs cp docs.tar.gz /backup/ cd /backup/ && tar -xzvf docs.tar.gz
注意事项
- 权限问题:如果遇到权限不足的问题,可以在命令前添加sudo。
- 路径结尾的斜杠:路径末尾是否有斜杠会影响复制内容,需特别注意。
- 性能考虑:对于大文件夹,建议使用rsync或tar,以减少系统资源占用。
相关问答FAQs
问题1:如何在复制时保留文件夹的权限和时间戳?
答:使用cp -a命令,它会保留所有属性(权限、时间戳、符号链接等)。

cp -a source_folder destination_folder
问题2:如何避免覆盖目标文件夹中的同名文件?
答:可以使用-i选项,在覆盖前提示用户确认,或者使用-u选项,仅更新较新的文件。
cp -ri source_
 
  
			