Linux文件夹复制(cp和rsync)

Linux 复制整个文件夹指南

在 Linux 中复制整个文件夹(包括子目录和文件)到另一个位置,可以使用 cprsync 命令。以下是详细方法和注意事项:

使用 cp 命令(基础方法)

基本语法

cp -r /源文件夹路径 /目标路径
  • -r:递归复制,保留子目录结构
  • -v(可选):显示复制进度(verbose)
  • -p(可选):保留文件属性(权限、时间戳等)

示例

/home/user/data 复制到 /backup 下(保留所有子文件和属性)

cp -rpv /home/user/data /backup/

效果
/backup/ 下会生成一个 data 文件夹,内容与原文件夹完全一致。

使用 rsync 命令(推荐,功能更强大)

基本语法

rsync -av /源文件夹路径/ /目标路径/
  • -a:归档模式(保留权限、符号链接等,相当于 -rlptgoD
  • -v:显示进度
  • -z(可选):压缩传输(适合远程复制)
  • --delete(可选):同步时删除目标中多余的文件(谨慎使用)

示例

/var/www/html 同步到 /mnt/backup(保留所有属性)

rsync -av /var/www/html/ /mnt/backup/

注意
源路径末尾的 / 表示复制文件夹内容(不包含文件夹本身)。
若省略 /,则会在目标路径下创建同名文件夹(如 rsync -av /var/www/html /mnt/backup 会生成 /mnt/backup/html/)。

高级场景处理

(1) 排除特定文件/目录

排除 node_modules.tmp 文件

rsync -av --exclude='node_modules' --exclude='*.tmp' /source/ /target/

(2) 断点续传(网络传输或大文件)

rsync -av --partial --progress /large_folder/ user@remote:/backup/
  • --partial:保留部分传输的文件
  • --progress:显示实时进度

(3) 保留硬链接和稀疏文件

rsync -avH --sparse /source/ /target/
  • -H:保留硬链接
  • --sparse:高效处理稀疏文件(如虚拟机磁盘)

复制后验证

检查文件完整性

对比源和目标文件的 MD5 校验和

find /source/ -type f -exec md5sum {} + | sort > source.md5
find /target/ -type f -exec md5sum {} + | sort > target.md5
diff source.md5 target.md5

若无输出,则表示所有文件一致。

查看复制的文件树

tree -d /target/  # 显示目录结构(需安装 tree 命令)

注意事项

权限问题

  • 若目标路径需要管理员权限,在命令前加 sudo
  • 复制系统文件时建议保留属性(-a-p 选项)

符号链接处理

  • cp -r 默认复制符号链接本身(而非指向的文件),若需解引用用 -L
  • rsync -a 默认保留符号链接,若需解引用用 -L

覆盖风险

  • 目标路径已存在同名文件时,默认会静默覆盖。可用 -i 交互确认:
    cp -rpi /source/ /target/
    

跨文件系统复制

  • 若目标为 NTFS/FAT,可能丢失权限信息,建议用 rsync 并显式指定权限:
    rsync -rtv --modify-window=1 /source/ /mnt/windows_drive/
    

总结

场景推荐命令
本地简单复制cp -rpv /source/ /target/
保留所有属性+排除文件rsync -av --exclude='*.log' /source/ /target/
远程或大文件同步rsync -avz --progress user@remote:/source/ /local/
需要严格校验复制后运行 diffmd5sum 校验

根据需求选择合适的方法,日常推荐 rsync -a,兼顾功能与可靠性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wydxry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值