Shell 刪除指定型別的檔案

2022-07-01 10:33:17 字數 2863 閱讀 3757

可以刪除指定檔名(字尾)的檔案.

可以刪除手機中指定字尾的垃圾檔案...  

find /storage/sdcard -name "*.tcookieid" |xargs rm -rf

find 路徑 -name "檔名過濾"|xargs 執行的命令

以下**摘要, 以免跪了

find、xargs命令使用及方法詳解

注意:find命令是相當耗資源的不得以的時候不要find的,比如說根 / 目錄;

功能說明:查詢檔案或目錄

find-->實時查詢:速度慢、精確匹配

命令語法:

find [options] [查詢路徑] [查詢條件] [處理動作]

查詢路徑:預設為當前目錄

查詢條件:預設為查詢指定路徑下的所有檔案

處理動作:預設為顯示

1.查詢條件:根據檔名稱查詢時是嚴格區分字母大小寫的

-name "檔名稱": 支援使用globbing

*  :重複0次或者任意多次前面字元

? :單個字元  

:字元範圍

[^]:排除字元範圍

2.-iname "檔名稱":查詢時不區分字元大小寫

3.  根據屬主屬組來查詢:

-user username: 根據屬主查詢

-group groupname: 根據屬組查詢

4.根據uid/gid來查詢:

-uid uid

-gid gid

如果我將fedora使用者刪除,沒有加選項-r,就不會刪除使用者檔案的;如果檔案的屬主屬組不在了,會發生什麼問題呢?但是,如果此前不確定使用者名稱,也可以使用uid的;

5.根據-nouser、-nogroup: 查詢沒有屬主、屬組的檔案;

-nouser:查詢沒有屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。

-nogroup: 查詢沒有屬組的檔案,即該檔案所屬的組在/etc/group中不存在。

6.組合條件:

-a: 與,同時滿足(可以不寫的)

-o: 或,表示乙個滿足就可以

-not, !:非,取反

6.根據檔案型別查詢:

-type: 根據檔案型別查詢

f: 普通檔案

d: 目錄

b: 塊裝置

c: 字元裝置

l: 符號鏈結檔案

p: 命名管道

s: 套接字

7.根據檔案大小查詢:

-size: 根據檔案大小查詢

-size [+|-]#unit

例如:-size +2mb (+表示大於)

常用單位:k, m, g

檔案查詢的乙個比較獨特的地方,當我們以某個單位指定以後,只要在單位變化範圍內1範圍內的變化的都符合條件;

注意:i.小於:

小於-1m:表示0m以下的所有檔案是小於-1m的;

小於-2m:表示1m以下的所有檔案是小於-2m的;

小於-3m:表示2m以下的所有檔案是小於-3m的;

小於-4m:表示3m以下的所有檔案是小於-4m的;

ii.大於:

大於+1m:表示1m以上的所有檔案是大於+1m的;

iii.不加+-號

1m的表示:只要在單位變化範圍內1m範圍內的變化的都符合條件.

8.根據時間戳查詢:

以天為單位(time):訪問時間

-atime [+|-]#

+: 表示(#+1)天之外被訪問過;

-: 表示#天之內被訪問過;

無符號:表示短於(#+1)> x >=#天的時間段被訪問過;    

-mtime:修改時間

-ctime:建立時間

以分鐘為單位(min):

-amin [+|-]#:訪問時間

-mmin:修改時間

-cmin:建立時間

9.根據許可權查詢:

-perm [+|-]mode

mode:精確匹配

+mode: 任何一類使用者的任何一位許可權匹配;常用於查詢某類使用者的某特定許可權是否存在;

-mode: 每類使用者的指定要檢查的許可權位都匹配;

10.處理動作:

-print:列印在標準輸出上;

-ls:以長格式輸出各檔案詳細資訊;

-exec command {} \; :對查詢到的檔案執行指定的命令;注意格式要正確:"-exec 命令 {} \;"

注意「{}」 與 \; 之間有空格

-ok command {} \; : 互動式的-exec;

{}表示佔位符

find把查詢到的所有檔案一次性地傳遞給-exec所指定的命令

find | xargs command 

在使用find命令的-exec選項處理匹配到的檔案時, find命令將所有匹配到的檔案

一起傳遞給exec執行。但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命

令執行幾分鐘之後,就會出現溢位錯誤。錯誤資訊通常是「引數列太長」或「引數列溢

出」。這就是xargs命令的用處所在,特別是與find命令一起使用。

find命令把匹配到的檔案傳遞給xargs命令,而xargs命令每次只獲取一部分檔案而

不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分檔案,然後是下一

批,並如此繼續下去。

在有些系統中,使用-exec選項會為處理每乙個匹配到的檔案而發起乙個相應的進

程,並非將匹配到的檔案全部作為引數一次執行;這樣在有些情況下就會出現程序過多,

系統效能下降的問題,因而效率不高;

而使用xargs命令則只有乙個程序。另外,在使用xargs命令時,究竟是一次獲取所

有的引數,還是分批取得引數,以及每一次獲取引數的數目都會根據該命令的選項及系

統核心中相應的可調引數來確定。

shell 指令碼定時刪除指定檔案

指令碼檔案demo.sh bin bash 要執行刪除的目錄 設定時間範圍 time sect 60 執行指令碼的當前時間 timenow date u s 迴圈開始選擇檔名 cd filepath 檔案匹配 for i in ls jsp html do 檔案的建立時間 filetime stat...

linux 刪除指定資料夾指定大小指定型別的檔案

背景 最近,需要將所開發的專案。在本地弄乙個,試驗專案,來測試自己的想法。將 拷貝到另乙個目錄後發現,目錄數中有svn的檔案。為了防止自己一不小心將 提交,導致 庫混亂。需要將 svn 的目錄全部刪掉。乙個乙個的刪太費事了。所以,有了本次的試驗。並且把我知道的分享給大家。切換到專案主目錄下,輸入如下...

windows下批量刪除指定型別檔案

在dos下使用del命令 del erase 刪除指定檔案 語法del drive path filename p f s q a attributes 引數 drive path filename 指定要刪除的檔案或檔案集的位置和名稱。需要filename。可以使用多個檔名。用空格 逗號或分號分開...