首頁 > 軟體

Linux find 命令用法總結

2020-06-16 18:01:16

find 命令算是Linux下最常用的一個命令之一了,這裡有一些常用用法的總結。

1. 按檔名搜尋。
搜尋當前目錄下所有的以txt結尾的檔案。第二個命令用了 -exec 引數,可以在對查詢的所有檔案執行一種操作。注意格式,空格和;一個都不能少。-name 的引數可以用正規表示式,例如第二個例子

find ./* -name "*.txt"
find ./* -name "[ab]*.py"
find ./* -name "*.pyc" -exec rm {} ;

2. 按修改時間查詢
查詢當前目錄下當天修改過的檔案。-1 表示一天前修改過的檔案。-2表示前兩天。find ./* -mtime n n表示,對檔案資料的最近一次修改是在 n*24 小時之前。+n 指n天以前,-n指n天以內(對 -mmin 是指n分鐘), n 表示第n天,他們的含義都是不同的,注意區分。

find ./* -mtime  60 -type f -print
find ./* -mmin -60 -type f -print
find ./* -mmin +60 -type f -print

3. 檔案狀態改變
和 上個引數相比,基本道理都是一樣的,只不過這個引數的含義是檔案的許可權被修改。改內容和改檔案的許可權是不一樣的,這裡指的是更改的是檔案inode的資料,比如檔案的許可權,所屬人等等資訊。cmin 表示近60分鐘內被改過許可權,ctime 表示近幾天內被修改過。

find ./* -cmin +60 -type f -print
find ./* -ctime -60 -type f -print

4
按照檔案的所屬group和 所屬user 來查詢-user 和 -nouser 最後一個命令找出當前已經被刪除的系統使用者的所有檔案, - group 和 - nogroup 的功能類似。

find ./* -user fox
find ./* -nouser

5
find 避開某個目錄,避開多個目錄。其中 -a 表示 and 的意思,-o 表示or 的意思。

find test -path "test/test4" -prune -o -print
find test ( -path test/test4 -o -path test/test3 ) -prune -o -print
find . ( -path ./modules -o -path ./framework -o -path ./utils -o -path ./config ) -prune -o -name "Bigger.*" -print

6
-perm 選項 指檔案的存取許可權

find -perm 755 -print

7
實用inode 來查詢檔案編號。可以如下面所示在find命令中指定inode編號。在此,find命令用inode編號重新命名了一個檔案。你也可以通過rm來刪除那個特殊的檔案。

ls -i1 test*
16187429 test-file-name
16187430 test-file-name
find -inum 16187430 -exec mv {} new-test-file-name ;

8
找出當前目錄下最大的5個檔案

find . -type f -exec ls -s {} ; | sort -n -r | head -5

9
下面的命令刪除大於100M的*.zip檔案。

find / -type f -name *.zip -size +100M -exec rm -i {} ;

Linux下查詢檔案find命令  http://www.linuxidc.com/Linux/2014-10/108575.htm

Linux下find命令詳解 http://www.linuxidc.com/Linux/2011-08/40669.htm

文字查詢利器find的使用 http://www.linuxidc.com/Linux/2014-03/97559.htm

功能強大的find命令 http://www.linuxidc.com/Linux/2014-01/95236.htm

Linux系統find命令詳解 http://www.linuxidc.com/Linux/2014-06/103232.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-04/116854.htm


IT145.com E-mail:sddin#qq.com