如何在执行文件操作时排除文件夹,即cp等.
我目前使用通配符*将文件操作应用于所有,但我需要排除一个单独的文件夹.
我实际想要使用的命令是chown来更改目录中所有文件的所有者,但我需要排除一个子目录.
解决方法
反向全球:
你想要一个glob的反向匹配,我会像下面这样做:
你想要一个glob的反向匹配,我会像下面这样做:
如果启用扩展通配,则可以与较新的bash进行反向匹配.例如,要匹配名称中没有foo或bar的所有内容:
shopt -s extglob echo !(*foo*|*bar*)
或者只是没有foo的所有东西:
shopt -s extglob echo !(*foo*)
找:
您也可以使用find(这是我认为最强大的选项),并使用!否定匹配,然后使用xargs -0运行命令:
find . ! -iname 'foo' -print0 | xargs -0 echo
简单:只需将文件夹放在其他地方,做你需要做的事情,然后把它放回去:-)