在檔案系統上查詢符合條件的檔案;
檔案查詢:locate,find
非實時查詢(資料庫查詢):locate
實時查詢:find
locate::
依賴於事先構建的索引,索引的構建是在系統較為空閒時自動進行(週期性任務);手動更新資料庫(updatedb);
索引構建過程需要遍歷整個根檔案系統,極消耗資源
工作特點:
查詢速度快
模糊查詢
非實時查詢
locate keyword
find:
實時查詢工具,通過遍歷指定路徑下的檔案系統完成檔案查詢
工作特點:
查詢速度略慢
精確查詢
實時查詢
語法:find[option]
...[查詢路徑]
[查詢條件]
[處理動作]
查詢路徑:指定具體目標路徑,預設為當前目錄
查詢條件:指定的查詢標準,可以以檔名、大小、型別、許可權等標準進行,預設為找出指定路徑下的所有檔案;
處理動作:對符合條件的檔案做什麼操作,預設輸出至螢幕
查詢條件:
根據檔名查詢:
「name」「檔名」:支援globe
*,?,[
],[^]
-iname "檔名稱",不區分字母大小寫
-regex 「patten」:以pattern匹配整個檔案路徑字串,而不僅僅是檔名稱;
根據屬主、屬組查詢:
user username:查詢屬主為指定使用者的檔案;
group grpname:
-uid userid :查詢屬主為指定的uid號的檔案
-gid groupid :查詢屬組為指定gid號的檔案
-nouser:查詢沒有屬主的檔案
-nogroup:查詢沒有屬組的檔案
根據檔案型別查詢:
-type type:
f:普通檔案
d:目錄檔案
s:套接字檔案
b:塊裝置檔案
c:字元裝置檔案
p:管道檔案
find /etc -type f -ls
組合條件:
與:-a
或:-o
非:-not,
找出/tmp目錄下,屬主不是root,且檔名不是fstab的檔案:
find /tmp \( -not -user root -a -not -name 'fstab' \) -ls
find /tmp -not \( -user root -o -name 'fstab' \) -ls
根據檔案大小來查詢:
-size
常用單位:k,m,g
#unit:(#-1,#)
-#unit:[0,#-1]
+unit:(
#,無窮)
根據時間戳:
以「天為單位」:
-atime
以分鐘為單位
-mtime
-ctime
根據許可權查詢:
-perm [+|-] mode find 檔案 -perm 755
mode 精確匹配
+mode 任何一類(u,g,o)物件許可權中只要能有一位匹配即可
-mode 每一類物件都必須同時擁有為其指定的許可權標準
處理動作:
-print:預設的處理動作,顯示至螢幕
-ls:類似於對查詢到的檔案執行 ls -l 命令
-delete 刪除查詢到的檔案
-fls /path/to/somefile : 查詢到的所有檔案的長格式資訊儲存至指定檔案中
-ok command \;對查到的每個檔案執行由command指定的命令
對於每個檔案執行命令之前,都會互動式要求使用者確認:
-exec command ...
:用於引用查詢到的檔名稱自身
注意:find傳遞查詢到的檔案至後面指定的命令時,查詢到所有符合條件的檔案一次性傳遞給後面的命令
有些命令不能接受過多引數,此時命令執行可能會失敗,另一種方式可規避此問題
find
|xargs command
Linux命令之find命令詳解
linux命令之find命令詳解 find命令是乙個在unix檔案系統中查詢檔案的常用命令,可以進行很多條件查詢。讓我們來看一些find命令的例項。語法 find 路徑 約束條件 如何查詢在檔名中含有指定關鍵字的檔案?下面這條命令查詢在 etc 目錄下所有檔名中含有 mail 的檔案。find et...
find 命令 Linux命令篇 find命令
find name txt o name pdf print演示結果 find regex txt pdf iregex 忽略大小寫的正則 查詢所有非txt文字 find name txt print演示結果 列印出當前目錄的檔案 深度為1 find maxdepth 1 type f演示結果 5....
Linux 命令 find 命令
find是日常工具箱中功能更強大 更靈活的命令列工具之一,因此值得花費更多的時間。最簡單的,find跟上路徑尋找一些東西。例如 find 它將找到 並列印出 系統中的每個檔案。而且由於一切都是檔案,你會得到很多需要整理的輸出。這可能不能幫助你找到你要找的東西。你可以改變路徑引數來縮小範圍,但它不會比...