插件窝 干货文章 linux怎么复制文件夹到另一个文件夹

linux怎么复制文件夹到另一个文件夹

复制 路径 文件夹 目标 931    来源:    2025-05-02

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


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

cp -r 源文件夹 目标路径/
  • -r 参数表示递归复制(针对目录必须加)
  • 示例:将 ~/Documents/myfolder 复制到 /backup/
    bash cp -r ~/Documents/myfolder /backup/
  • 效果/backup/ 下会出现 myfolder 文件夹。

2. 复制并保留文件属性

cp -a 源文件夹 目标路径/
  • -a 等同于 -dR --preserve=all,保留权限、时间戳等所有属性
  • 示例:
    bash cp -a /home/user/config /mnt/backup/

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

cp -ru 源文件夹 目标路径/
  • -u 参数表示仅复制源中比目标新的文件

4. 复制并显示进度(需要 rsync

rsync -avh --progress 源文件夹/ 目标路径/
  • -a:归档模式(保留属性)
  • -v:显示详细过程
  • --progress:显示进度条
  • 示例:
    bash rsync -avh --progress ~/Downloads/large_folder/ /media/backup/

注意事项

  1. 路径结尾斜杠 / 的区别

    • cp -r dir1 dir2:将 dir1 复制到 dir2 内(dir2 已存在时)
    • cp -r dir1/ dir2:明确将 dir1 的内容复制到 dir2
  2. 覆盖文件:默认会静默覆盖目标路径中的同名文件,如需确认可加 -i 参数:

    cp -ri 源文件夹 目标路径/
    
  3. 权限问题:若目标路径需要管理员权限,在命令前加 sudo

    sudo cp -r /opt/some_app /backup/
    

常见问题

  • 错误提示 cp: omitting directory:忘记加 -r 参数。
  • 符号链接处理:默认会复制链接指向的文件,若想保留链接本身,用 -d 参数。

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