是通過path環境變數到該路徑內查詢可執行檔案,因此基本功能是尋找可執行的檔案
查詢可執行檔案:
查詢命令路徑:
查詢命令別名:
-b:只查詢二進位制檔案
-m:只查詢在說明檔案manual路徑下的檔案
依賴於事先構建好的索引庫,定時更新索引庫 updatedb
查詢速度快,模糊查詢
-b:只匹配路徑中的基名
-c:統計總共有多少符合條件個檔案
find [options] [查詢的起始路徑] [查詢條件] [處理動作]
查詢的起始路徑:指定具體的搜尋目錄,預設為當前目錄
查詢條件:指定查詢的標準,大小,檔名,型別。預設是指定路徑下的所有檔案
處理動作:符合查詢條件的檔案做出的操作,例如cp,rm,預設為輸出到標準輸出
查詢條件:
a:表示式:
與 -a
或 -o
非:-not !
b:檔名查詢:檔名查詢:
-name "pattern" --- 引號需要加
支援萬用字元 * ? [^]
-iname "pattern" 不區分大小寫
基於正規表示式模式查詢
-regex "pattern" 匹配整個路徑 而不是檔名
find / -regex /t.*/f.*
c:根據檔案的從屬關係查詢-user 屬主
-group 屬組
-uid gid 屬主id
-gid gid 屬組id
-nouser 沒有屬主的檔案
-nogroup 沒有屬組的檔案
d:根據檔案型別查詢-type type
f:普通檔案
d:目錄
b:塊裝置檔案
l:鏈結檔案
c:字元裝置檔案
p:管道檔案
s:socket套接字檔案
e: -size [+|-] #unit#unit:(#-1,#]
-#unit:[0,#-1)
+#unit:(#,oo)
查詢/etc目錄下大於1m且型別為普通檔案的所有檔案;
f:根據時間戳查詢
以天為單位
-atime [+|-]# 檔案最後訪問時間
-mtime [+|-]# 檔案最後修改時間
-ctime [+|-]# 檔案最後改變時間
#:[#,#-1): 10 大於等於10天前,小於9天前
-#:(#,0] -10 最後的訪問時間10天以內
+#:(oo,#-1] +10 最後的訪問時間在9天以前,包括9天
查詢最近10天訪問的檔案
g:以分鐘為單位-amin [+|-]#
-mmin [+|-]#g
-cmin [+|-]#
h:根據檔案許可權來查詢-perm mode 777 rwx 421
許可權物件:三類 屬主 屬組 其他
許可權位: 讀 寫 執行 r w x 4 2 1
h: mode 精確查詢
/mode:任何乙個許可權物件中滿足其一即可
-mode:所有都需要滿足
421 精確,9位許可權位所有的許可權位保持一致
/421 只要包含,且9位許可權中每個許可權中有乙個滿足即可 或
-421 只要包含,且9位許可權中每個許可權均要滿足 與
查詢/etc目錄下所有使用者都沒有寫許可權的檔案
查詢/etc目錄至少有一類使用者沒有執行許可權的檔案
k:目錄層級
-path 基於目錄層級
基於目錄深度查詢
-maxdepth 最大深度
-mindepth 最小深度
查詢/etc目錄下第三層目錄中的檔案
處理動作
-print: 預設動作,輸出到標準輸出作:
-fls /path/to/somefile:將查詢到的檔案的長格式資訊寫入到指定檔案中
-ok commond {} \; 對執行的每個檔案做commond操作,每次的操作需要使用者確認
-exec commond {} \; 對執行的每個檔案做commond操作
檔案的搜素命令
1 which 查詢可執行的檔案 搜尋命令所在路徑以及別名 2 whereis 只能用於搜尋程式名 搜尋命令所在的路徑以及幫助文件所在位置 b 只查詢可執行檔案 m 只查詢幫助檔案 3.locate 依賴於事先構建好的索引庫,定時更新索引庫 查詢速度快,模糊查詢 locate安裝命令 yum ins...
簡單搜素題集
不解釋 include using namespace std define ll long long define rep i a b for int i a i b i define clr a x memset a x sizeof a define re freopen 1.in r std...
深度搜素 搜尋巢狀
搜尋問題,擴充套件節點的時候會iterate乙個link集合,一般就是乙個for 迴圈,但有的時候,這個集合並不能直接得到,而是另乙個搜尋問題,比如n個數分k組問題的一種解法是 問題分成k個步驟,每個步驟確定乙個組,具體乙個組可分的方案的candidate集合就不是直接可以用for來iterate的...