Linux
如何在 Linux 中執行文件操作(即 cp、mv、rm 和 chown 等)時排除文件夾
在執行文件操作(即 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 到其他地方,做你需要做的,然後把它放回去:-)