Unix复制递归,包括所有目录
我有以下两个目录:Unix复制递归,包括所有目录,unix,Unix,我有以下两个目录: ~/A drawable/ imageb.png new/` newimage.png ~/B drawable/ imagec.png 当我使用cp-r~/A/*~/B命令newimage.png及其新/文件夹时,会将imageb.png复制到~/B,但是imageb.png不会复制到~/B/drawable 您能解释一下为什么会出现这种情况,以及我如何避免这种情况吗?使用tar而不是cp: (cd
~/A
drawable/
imageb.png
new/`
newimage.png
~/B
drawable/
imagec.png
当我使用cp-r~/A/*~/B
命令newimage.png及其新/文件夹时,会将imageb.png复制到~/B,但是imageb.png不会复制到~/B/drawable
您能解释一下为什么会出现这种情况,以及我如何避免这种情况吗?使用tar而不是cp:
(cd A ; tar cf - *) | (cd B ; tar xf -)
或者更紧凑(如果您使用的是GNU tar):
如果您在linux上,可以使用
-r
选项
例如:cp-r~/A/~/B/
如果您使用的是BSD,则可以使用-R
选项
例如:cp-R~/A/~/B/
有关您应该通过哪个选项的详细信息,请参阅man cp
还要注意的是,如果您没有对该文件的权限,则会阻止复制文件。您是在UNIX上还是在Linux上?这些是常规文件或链接吗?这可能不会直接导致您的问题,但我会使用
cp-r~/A~/B
,而不使用*
。如果您尝试复制到不存在的目录,例如使用cp-r~/a~/new_B
,会发生什么情况?
tar cC A -f - . | tar xC B -f -