如何使用cp命令复制时来exclude一些特殊的文件或目录?

很遗憾cp没有提供这个功能!!!!!!

它没有windows下的xcopy类似功能。

不过linux提供了另一个命令来更好的实现这个功能,那就是rsync指令。

rsync -av --progress sourcefolder /destinationfolder --exclude thefoldertoexclude

不过cp虽然没有提供exclude选项,有时还是有workaround的。

比如下面这个情况:

folder images下有很多文件,有的是jpg,有的是png。如果复制images下的所有文件,除了jpg文件外,可以通过这个命令来实现:

cp images/!(*.jpg) newFolder

不过使用!这个时,需要先通过shopt开启shell的extglob

shopt -s extglob

参考文档:

  • http://stackoverflow.com/questions/4585929/how-to-use-cp-command-to-exclude-a-specific-directory
  • http://www.soosmart.com/topic/681.html

发表评论