我有一个一个目录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 .svn 2 B 3 C.log
rsync特别好的是还有window客户端,在window下也能实现同样的效果。