首页 > 代码库 > 怎样拷贝整个目录并且忽略部分文件及目录(包括windows)?

怎样拷贝整个目录并且忽略部分文件及目录(包括windows)?

我有一个一个目录A,其中有一个子目录B,及文件C.log,我想把目录A下除了B及C.log的所以文件及目录拷贝到D目录,另外排除所有svn目录,请问这条语句该怎么写?

方法一:

    find a ( -path a/b -o -path a/*.svn ) -prune -o -print |cpio -o > /tmp/a.cpio
    然后到tmp目录下
    cpio -i < a.cpio

 

方法二:

    使用rsync命令实现了,非常感谢:

    rsync -r --delete  --exclude=".svn"  --exclude="B" --exclude="C.log" /A/ /D

    比cp命令好多了,另外排除的文件及目录还可以写到一个文件里:

    rsync -r --delete  --exclude-from=rsync.exclude /A/ /D

    rsync.exclude文件内容为:

1 .svn2 B3 C.log

rsync特别好的是还有window客户端,在window下也能实现同样的效果。

   

怎样拷贝整个目录并且忽略部分文件及目录(包括windows)?