Gre*_*tes 14 linux filesystems shell
在大多数情况下,在 Linux 中进行递归/深层目录复制的一种好的通用方法是什么?我使用了简单的东西,比如cp -R相当复杂的cpio咒语。是否有任何显着的优势或劣势导致您偏爱其中一个?你最常使用哪一种?
Gar*_*eth 30
NAME
cp - copy files and directories
-a, --archive
same as -dpR
-d same as --no-dereference --preserve=links
-p same as --preserve=mode,ownership,timestamps
-R, -r, --recursive
copy directories recursively
Run Code Online (Sandbox Code Playgroud)
所以回答你的问题:
cp -a /foo /bar
Run Code Online (Sandbox Code Playgroud)
将所有内容从目录 /foo 递归复制到目录 /bar,同时保留符号链接和文件/目录“模式”“所有权”和“时间戳”。
我最常使用像“cd $srcdir ; tar -c . | tar -C $destdir -x ”这样的命令。但我也使用 rsync -a $src $dst。
tar 解决方案的最大优势在于,它是我多年前必须在没有 cpio、rsync 或递归复制的 cp 的系统上使用的解决方案。焦油几乎无处不在。它卡在我的头上,因为我经常使用它,可能有更优雅的方法。它似乎总是能正确完成工作,所以我从来没有真正寻找过替代品。