如何在bash中复制所有目录和文件递归?

use*_*818 123 directory bash copy

我有脚本:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;
Run Code Online (Sandbox Code Playgroud)

SourceDir还包含子文件夹.

在DestFolder中的问题不仅是所有树,而是在所有其他级别和文件的上层.怎么修 ?谢谢.

lan*_*nzz 260

cp -r ./SourceFolder ./DestFolder
Run Code Online (Sandbox Code Playgroud)

  • @AnneTheAgile - 刚才我的测试,根据手册页,-r和-R没有区别. (8认同)
  • 因此,为了澄清,资本-R选项将再次复制根目录; small -r选项使根路径保持不变. (5认同)
  • 这不会在“DestFolder”中创建“SourceFolder”吗? (5认同)
  • cp不是bash命令,而是单独的可执行文件,因此它是系统特定的。另一方面,不同操作系统上的true bash命令相同。 (2认同)

小智 49

简单副本的代码.

cp -r ./SourceFolder ./DestFolder
Run Code Online (Sandbox Code Playgroud)

具有成功结果的副本的代码

cp -rv ./SourceFolder ./DestFolder
Run Code Online (Sandbox Code Playgroud)

如果source包含任何只读文件,它也将复制的强制代码

cp -rf ./SourceFolder ./DestFolder
Run Code Online (Sandbox Code Playgroud)

详情帮助

cp --help
Run Code Online (Sandbox Code Playgroud)


小智 14

也试试这个cp -r ./dist/* ./out

该命令将dist/*文件复制到out目录;


Har*_*osh 5

您可能会发现保存属性集很方便

cp -arf ./SourceFolder ./DestFolder