Unix复制递归包括所有目录

时间:2015-06-27 10:41:57

标签: unix

我有以下两个目录:

~/A
    drawable/
        imageb.png
    new/`
        newimage.png

~/B
    drawable/
        imagec.png

当我使用cp -r ~/A/* ~/B命令时,newimage.png及其new /文件夹被复制到〜/ B但是imageb.png没有复制到〜/ B / drawable。

你能解释为什么会出现这种情况以及如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

使用tar而不是cp:

(cd A ; tar cf - *) | (cd B ; tar xf -)

或更紧凑(如果你正在使用GNU tar):

tar cC A -f - . | tar xC B -f -

答案 1 :(得分:1)

如果您使用的是Linux,则可以使用nil选项。

例如:-r

如果您使用的是BSD,则可以使用cp -r ~/A/. ~/B/选项。

例如:-R

有关您应该通过哪个选项的详细信息,请参阅cp -R ~/A/. ~/B/

另请注意,如果您没有该文件的权限,则会阻止复制文件。