我有一个一个目录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下也能实现同样的效果。

   

相关文章:

  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2022-12-23
  • 2021-08-30
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2021-07-11
  • 2022-12-23
  • 2022-01-20
  • 2022-12-23
相关资源
相似解决方案