bash shell有個extglob選項,開啟之後shell可以另外識別出5個模式匹配操作符,能使檔案正則匹配。
開啟 shopt命令:shopt -s extglob
關閉 shopt命令:shopt -u extglob
?(pattern-list) - 所給模式匹配0次或1次; *(pattern-list) - 所給模式匹配0次以上包括0次;+(pattern-list) - 所給模式匹配1次以上包括1次; @(pattern-list) - 所給模式僅僅匹配1次;!(pattern-list) - 不匹配括號內的所給模式。
1、保留a檔案其他刪除
[root@localhost abc]# shopt -s extglob
[root@localhost abc]# rm -rf !(a)
2、保留a和b檔案,其他刪除
[root@localhost abc]# rm -f !(a|b)
3、刪除除了.log 的其他檔案
[root@localhost abc]# rm -rf !(*log)
4、刪除以jpg或者png的所有檔案
其他方式保留a檔案
[root@localhost abc]# ls |grep -v a |xargs rm -f
Linux 批量清除檔案內容而不刪除檔案
清理單個檔案,可以這樣 echo mylog.log 但是,如果我要清理一堆檔案,比如在 logs目錄下面的所有以.log結尾的檔案的內容,而不刪除檔案,該如何操作呢?我一開始的語句是這樣的 find logs name log exec echo 但是,執行的結果是新建了乙個名為 的檔案,並沒有執...
Linux下使用rm刪除檔案,並排除指定檔案
刪除全部檔案,保留1.txt find grep v 1.txt xargs rm 特別注意grep的 v引數,v引數表示反選,比如我們上面指定了 v 1.txt,即排除掉1.txt,選中其他全部檔案。所以這樣執行之後1.txt就被排除了 刪除全部檔案,保留1.txt和2.txt,特別注意grep的...
Linux刪除指定目錄檔案指令碼
刪除語法格式 find 對應目錄 mtime 天數 name 檔名 exec rm rf find u01 masicong mtime 10 name exec rm rf 將 u01 backups目錄下所有10天前帶 的檔案刪除 說明 u01 backups 想要進行清理的任意目錄 mtime...