1. 程式人生 > >linux刪除指定資料夾中某個檔案除外的其他檔案

linux刪除指定資料夾中某個檔案除外的其他檔案

# shopt -s extglob

# rm -fr !(file1)

如果是多個要排除的,可以這樣:

# rm -rf !(file1|file2)

首先科普下shopt -s extglob

Bash Shell有個extglob選項,開啟之後Shell可以另外識別出5個模式匹配操作符,能使檔案匹配更加方便。

開啟方法很簡單,使用shopt命令:shopt -s extglob 
關閉,,使用shopt命令:shopt -u extglob

開啟之後,以下5個模式匹配操作符將被識別:

?(pattern-list) - 所給模式匹配0次或1次; *(pattern-list) - 所給模式匹配0次以上包括0次;+(pattern-list) - 所給模式匹配1次以上包括1次; @(pattern-list) - 所給模式僅僅匹配1次;!(pattern-list) - 不匹配括號內的所給模式。 


示例


刪除檔名不以jpg結尾的檔案: 


rm -rf !(*jpg) 

刪除檔名以jpg或png結尾的檔案:

rm -rf *@(jpg|png)