Linux

如何在 Linux 中執行文件操作(即 cp、mv、rm 和 chown 等)時排除文件夾

  • December 16, 2014

在執行文件操作(即 cp 等)時如何排除文件夾?

我目前會使用萬用字元 * 將文件操作應用於所有文件,但我需要排除一個文件夾。

我實際上想要使用的命令是chown更改目錄中所有文件的所有者,但我需要排除一個子目錄。

Inverse Globbing:

你想要一個 glob 的逆匹配,我會這樣做:

如果啟用擴展萬用字元,則可以使用較新的 bash 進行反向匹配。例如,要匹配名稱中沒有 foo 或 bar 的所有內容:

shopt -s extglob
echo !(*foo*|*bar*)

或者只是所有沒有 foo 的東西:

shopt -s extglob
echo !(*foo*)

Find:

你也可以使用 find (這是我認為最強大的選項),然後使用 ! 否定匹配,然後使用以下命令執行命令xargs -0

find . ! -iname 'foo' -print0 | xargs -0 echo

簡單:

只需將文件夾 mv 到其他地方,做你需要做的,然後把它放回去:-)

引用自:https://serverfault.com/questions/102729