插件窝 干货文章 linux如何复制文件夹到另一个文件夹

linux如何复制文件夹到另一个文件夹

复制 文件夹 路径 目标 995    来源:    2025-04-20

在 Linux 中复制文件夹到另一个目录,可以使用 cp 命令。以下是几种常见用法及注意事项:


1. 基本复制(不包含子目录)

cp -r 源文件夹 目标路径/
  • -r 表示递归复制(针对目录必须加)
  • 示例: bash cp -r ~/Documents/myfolder /backup/ > 将家目录下 Documents/myfolder 复制到 /backup/ 目录中

2. 复制并保留文件属性

cp -a 源文件夹 目标路径/
  • -a 等同于 -dR --preserve=all,保留权限、时间戳等所有属性
  • 适用于需要完整备份的场景

3. 仅复制更新过的文件(增量复制)

cp -ru 源文件夹/* 目标路径/
  • -u 仅复制源文件夹中比目标路径更新的文件
  • 适用于定期同步场景

4. 覆盖前确认

cp -ri 源文件夹 目标路径/
  • -i 会在覆盖文件前交互式询问确认

5. 显示复制进度

rsync -avh --progress 源文件夹/ 目标路径/
  • 需要安装 rsync(多数发行版已预装)
  • -v 显示详情,--progress 显示进度条

注意事项

  1. 权限问题:若目标目录不可写,需加 sudo bash sudo cp -r 源文件夹 /系统目录/
  2. 路径结尾斜杠
    • cp -r dir1/ dir2 → 将 dir1 的内容复制到 dir2
    • cp -r dir1 dir2 → 将 dir1 整个文件夹复制为 dir2/dir1
  3. 隐藏文件:默认会复制 . 开头的隐藏文件,如需排除需额外处理

替代工具推荐

  • rsync:更强大的同步工具,支持断点续传、远程同步等 bash rsync -avz 源文件夹/ 目标路径/
  • tar 管道:适合保留属性且跨设备复制 bash tar cf - 源文件夹 | (cd 目标路径 && tar xf -)

根据需求选择合适的方法即可。