標籤:find locate which whereis
linux的核心思想是“一切皆檔案”;所有的裝置、系統配置等都是以檔案形式來儲存,能夠準確的找到檔案,才能夠對該檔案做修改等操作;所以檔案的搜尋、尋找對於系統的維護與管理至關重要
1、which:尋找可執行檔位置
which會由PATH定義的路徑中找出系統命令對應的可執行檔位置,並返回第一次找到的結果
用法:
which [optinos] Command...
常用選項:
-a:列出所有由PATH定義路徑找出的檔案位置
2、whereis:尋找檔案位置
whereis只能用於程式名的搜尋,而且只能搜尋二進位檔案、man說明檔案和原始碼檔案,預設返回所有資訊
whereis會從資料庫中尋找,該資料庫並不是即時更新的,預設該資料庫一周更新一次;有時會找到已經被刪除的檔案或者找不到剛建立的檔案
用法:
whereis [optinos] [directory] FILENAME...
常用命令:
-b:尋找可執行檔
-m:尋找協助檔案
-s:尋找原始碼檔案
-u:搜尋預設路徑下除可執行檔、協助檔案、原始碼檔案以外的其他檔案
-B:指定搜尋可執行檔的路徑
-M:指定搜尋協助檔案的路徑
-S:指定搜尋原始碼檔案的路徑
3、locate:根據資料庫尋找檔案
locate是通過update程式將硬碟中的所有檔案先建立一個索引資料庫,在執行locate時直接找索引,查詢速度快,但並非即時尋找;資料庫一般由作業系統管理,系統會在每天通過crontab程式來更新此資料庫,也可以使用updatedb命令手動更新此資料庫
用法:
locat [options] [pattern]...
常用選項:
-i:忽略大小寫
-r:使用Regex
-q:不顯示任何錯誤資訊
4、find:遍曆尋找
find在目錄結構中搜尋檔案,並執行指定的操作。find命令提供了相當多的尋找條件,即時尋找,功能強大,因為find是遍曆尋找指定目錄的所有檔案,所以速度慢,消耗資源,因為遍曆一個大檔案系統可能會花費很長的時間
用法:
find [PATH] [options] [expression]...
常用選項:
-name FILENAME:對檔案名稱做精確匹配,支援檔案名稱通配
-iname FILENAME:檔案名稱匹配時不區分大小寫
-regex PATTERN:對檔案名稱匹配時使用Regex
-user USERNAME:根據檔案屬主尋找
-group GROUPNAME:根據檔案屬組尋找
-uid UID:根據UID尋找
-gid GID:根據GID尋找
-nouser:尋找沒有屬主的檔案
-nogroup:尋找沒有屬組的檔案
-type:根據檔案類型尋找
d:目錄(directory)
f:普通檔案(file)
c:字元裝置檔案(character)
b:塊裝置檔案(block)
l:符號連結檔案(symbolic link file)
p:管道檔案(pipe)
s:通訊端檔案(socket)
-size:根據大小尋找(預設大小為位元組)
[+ | -]#:K,M,G
+#M:大於#M的檔案
-#M:小於#的檔案
-mtime:根據修改時間尋找
-ctime:根據狀態時間尋找
-atime:根據訪問時間尋找
[+距現在幾天前 | -距現在幾天以內]#
-mmin:根據分鐘尋找,表示有多少分鐘訪問過或沒有訪問
-amin:根據分鐘尋找
-cmin:根據分鐘尋找
[+ | -]#
-perm MODE:根據許可權尋找(使用8進位數字表示)
MODE:精確匹配
/MODE:任意一位許可權匹配即符合條件
-MODE:檔案許可權完全包含此MODE時才符合條件
組合條件:
-a:與
-o:或
-not:非
後續處理:
預設為-print:顯示
-ls:類似ls -l的形式顯示檔案的詳細資料
-ok Command {} \;:使用shell命令對尋找到的檔案做後續處理,{}引用找到的檔案
-exec Command {} \;:同-ok,-ok的每一個操作都需要使用者確認,-exec不需要
| xargs Command:從標準輸出讀取檔案,比-ok,-exec功能強大,本身可以不適用引用符,也不需要\;結尾
本文出自 “杆兒男” 部落格,請務必保留此出處http://wtime.blog.51cto.com/8829658/1537625