linux下的find命令在目錄結構中搜尋檔案,並執行指定的操作。
linux下的find命令提供了相當多的查詢條件,功能很強大。由於find具有強大的功能,所以它的
選項特別特別多。
在執行乙個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行,因為遍歷乙個大的文
件系統可能會花費很長的時間。
find命令的格式:find [-path...] -options[-print -exec -ok]
path:要查詢的目錄路徑。
~表示¥home目錄
.表示當前目錄
/表示根目錄
-print:表示講結果輸出到標準輸出
-exec:對匹配的檔案執行該引數所給出的shell命令。
形式為command {} \; ({}和\;之間有空格)
-ok:與-exec作用相同,區別在於,在執行命令之前,都會給出提示,讓使用者確認執行
option常用的選項:
-name按照名字查詢
-perm安裝許可權查詢
-prune不再當前指定的目錄下查詢
-user檔案屬主來查詢
-group所屬組來查詢
-type按照檔案型別來查詢
-nouser查詢無有效屬主的檔案
-nogroup查詢無有效的所屬組的檔案
我簡單的舉兩個例子:
一:find -name
擴充套件幾個-name用法
1.在當前目錄及子目錄中,查詢大寫字母
開頭的txt檔案
[liang@localhost code]$ find . -name '[a-z]*.txt' -print
2.在/etc及其子目錄中,查詢host開頭的檔案
[liang@localhost code]$ find /etc -name 'host*' -print
3.在$home目錄下及其子目錄中,查詢所有檔案
[liang@localhost ~]$ find ~ -name '*' -print
4.在當前目錄及子目錄中,查詢不是out開頭的txt檔案
[liang@localhost ~]$ find . -name "out*" -prune -o -name "*.txt" -print
二.按目錄查詢
1.在當前目錄除了aa之外的子目錄內搜尋txt檔案
[liang@localhost ~]$ find . -path "./aa" -prune -o -name "*.txt" -print
2.在當前目錄及除aa和bb之外的子目錄中查詢txt檔案
[liang@localhost ~]$ find . -path"./aa" -o-path "./bb" -prune -o -name "*.txt" -print
3.在當前目錄,不再子目錄中,查詢txt檔案
[liang@localhost ~]$ find . ! -name "." -type d -prune -o -type f -name "*.txt" -print
三.按許可權查詢
四.按型別查詢
在當前目錄及子目錄下,查詢符號鏈結檔案
[liang@localhost ~]$ find . -type l -print
五.按照屬主及屬組
查詢屬主是root的檔案:
2.查詢屬主被刪除的檔案
[liang@localhost ~]$ find / -nouser -type f -print
3.查詢屬組liang的檔案
[liang@localhost ~]$ find / -group liang -type f -print
4.查詢屬組被刪除的檔案
find / -nogroup -type f -print
六.按時間查詢
查詢2天內被更改過的檔案
[liang@localhost ~]$ find . -mtime -2 -type f -print
查詢兩天前被更改過得檔案
[liang@localhost ~]$ find . -mtime +2 -type f -print
查詢一天內被訪問的檔案
查詢一天前被訪問的檔案[liang@localhost ~]$ find . -atime -1 -type f -print
[liang@localhost ~]$ find . -atime +1 -type f -print
查詢10分鐘以前狀態被改變的檔案
[liang@localhost ~]$ find . -cmin +10 -type f -print
七。按檔案新舊
1.查詢比aa.txt新的檔案
[liang@localhost ~]$ find . -newer "aa.txt" -type f -print
2.查詢比aa.txt舊的檔案
[liang@localhost ~]$ find . ! -newer "aa.txt" -type f -print
3.查詢比aa.txt新,比bb.txt舊的檔案
[liang@localhost ~]$ find . -newer 'aa.txt' ! -newer 'bb.txt' -type f -print
八.按大小查詢
1.查詢超過1m的檔案
[liang@localhost ~]$ find / -size +1m -type f -print
2.查詢等於100位元組的檔案
[liang@localhost ~]$ find . -size 100c -print
3.查詢小於50kb的檔案
九.執行命令[liang@localhost ~]$ find . -size -50k -print
1.查詢del.txt並刪除,刪除前提示確認
[liang@localhost ~]$ find . -name 'del.txt' -ok rm {} \;
2.查詢aa.txt並備份為aa.txt.bak
[liang@localhost ~]$ find . -name 'aa.txt' -exec cp {} {}.bak \;
3.查詢aa.txt歸檔壓縮為aa.txt.tar.gz並刪除aa.txt
[liang@localhost ~]$find . -name "aa.txt" -type f -exec tar -zcvf {}.tar.gz {} \; -exec rm -rf {} \; > /dev/null
Linux find 命令總結
查詢檔案是非常常見的系統操作,linux可以使用find命令來進行檔案查詢,用好find命令,會讓你感受到前所未有的痛快。find有眾多選項和引數,熟練運用它們,你才能真正感受到find命令的強大,總結如下。命令格式 find pathname option print exec ok comman...
linux find 命令總結
這裡總結一些常用到的關於find的命令的操作 b find命令的一般形式為 b find pathname options print exec ok 讓我們來看看該命令的引數 pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄。print find命令將匹...
Linux Find 命令總結
三豐雲,免費虛擬主機和免費雲伺服器相當不錯,使用起來非常快,對於個人使用者來說足夠用了,有需要的朋友來看看吧,我已經使用過了 體驗很不錯的 1 按檔名遞迴查詢 find name filename 2 按檔名遞迴查詢,不區分大小寫 find iname filename 3 查詢當前目錄及深度為1的...