說明:find 指令是在Linux 系統中,常用的工具指令,用來搜尋檔案,甚至刪除過期文件等等應用…
語法:
find [path...] [expression]
Option:
1. 與時間有關的選項:共有 -atime, -ctime 與 -mtime ,以 -mtime 說明
-mtime n :n 為數字,意義為在 n 天之前的『一天之內』被更動過內容的檔案;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更動過內容的檔案檔名;
-mtime -n :列出在 n 天之內(含 n 天本身)被更動過內容的檔案檔名。
-newer file :file 為一個存在的檔案,列出比 file 還要新的檔案檔名
2. 與使用者或群組名稱有關的參數:
-uid n :n 為數字,這個數字是使用者的帳號 ID,亦即 UID ,這個 UID 是記錄在
/etc/passwd 裡面與帳號名稱對應的數字。
-gid n :n 為數字,這個數字是群組名稱的 ID,亦即 GID,這個 GID 記錄在
/etc/group。
-user name :name 為使用者帳號名稱喔!例如 dmtsai
-group name:name 為群組名稱喔,例如 users ;
-nouser :尋找檔案的擁有者不存在 /etc/passwd 的人!
-nogroup :尋找檔案的擁有群組不存在於 /etc/group 的檔案!
當你自行安裝軟體時,很可能該軟體的屬性當中並沒有檔案擁有者,
這是可能的!在這個時候,就可以使用 -nouser 與 -nogroup 搜尋。
3. 與檔案權限及名稱有關的參數:
-name filename:搜尋檔案名稱為 filename 的檔案;
-size [+-]SIZE:搜尋比 SIZE 還要大(+)或小(-)的檔案。這個 SIZE 的規格有:
c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB
還要大的檔案,就是『 -size +50k 』
-type TYPE :搜尋檔案的類型為 TYPE 的,類型主要有:一般正規檔案 (f), 裝置檔案 (b, c),
目錄 (d), 連結檔 (l), socket (s), 及 FIFO (p) 等屬性。
-perm mode :搜尋檔案權限『剛好等於』 mode 的檔案,這個 mode 為類似 chmod
的屬性值,舉例來說, -rwsr-xr-x 的屬性為 4755 !
-perm -mode :搜尋檔案權限『必須要全部囊括 mode 的權限』的檔案,舉例來說,
我們要搜尋 -rwxr--r-- ,亦即 0744 的檔案,使用 -perm -0744,
當一個檔案的權限為 -rwsr-xr-x ,亦即 4755 時,也會被列出來,
因為 -rwsr-xr-x 的屬性已經囊括了 -rwxr--r-- 的屬性了。
-perm /mode :搜尋檔案權限『包含任一 mode 的權限』的檔案,舉例來說,我們搜尋
-rwxr-xr-x ,亦即 -perm /755 時,但一個檔案屬性為 -rw-------
也會被列出來,因為他有 -rw.... 的屬性存在!
4. 額外可進行的動作:
-exec command :command 為其他指令,-exec 後面可再接額外的指令來處理搜尋到
的結果。
-print :將結果列印到螢幕上,這個動作是預設動作!
Example:
尋找3天前/tmp目錄下 *.tmp檔案,並刪除之
find /tmp -mtime +2 -name '*.tmp' -exec rm -rf {} \;
尋找 /tmp目錄下 *.log檔案大小超過1G
find /tmp -name '*.tmp' -size +1073741824c
參考資訊:http://linux.vbird.org/ 鳥哥的私房菜
沒有留言:
張貼留言