如何在Linux中执行文件操作(例如cp,mv,rm和chown等)时排除文件夹

如何在执行文件操作时排除文件夹,即cp等.

我目前使用通配符*将文件操作应用于所有,但我需要排除一个单独的文件夹.

我实际想要使用的命令是chown来更改目录中所有文件的所有者,但我需要排除一个子目录.

解决方法

反向全球:
你想要一个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

简单:只需将文件夹放在其他地方,做你需要做的事情,然后把它放回去:-)

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...