find
是一種查詢檔案的命令。它遍歷系統中的每個檔案實現精確、實時查詢,並可以根據使用者指定路徑查詢。它支援
glob
的萬用字元。
find
的常用格式為:
find [
查詢路徑
...] [
查詢條件
] [處理動作]
1、find
命令常用查詢條件:
-name "filename"
按指定名稱查詢
-iname "filename"
不區分檔案的大小寫
-user username
根據使用者屬主查詢
-group groupname
根據使用者屬組查詢
-uid uid
根據uid
查詢檔案
-gid gid
根據gid
查詢檔案
-nouser
查詢沒有屬主的檔案
-nogroup
查詢沒有屬組的檔案
-type
根據檔案型別查詢
f :普通檔案
d:目錄檔案
l:軟連線
b:塊裝置
c:字元裝置
p:管道
s:socket檔案
-size [+/-]#
根據檔案大小查詢。預設按位元組查詢單位:
+: 表示大於指定大小的檔案
-: 表示小於指定大小檔案
-atime [+/-]#
根據訪問時間(單位為天)
-mtime [+/-]#
根據修改時間(單位為天)
-ctime [+/-]#
根據改變時間(單位為天)
-amin [+/-]#
根據訪問時間(單位為分鐘)
-mmin [+/-]#
根據修改時間(單位為分鐘)
-cmin [+/-]#
根據改變時間(單位為分鐘)
+: 表示至少指定時間沒有被訪問或被修改過
- :
表示最近指定時間內被被訪問或被修改過
-perm
根據許可權查詢
mode
:精確匹配
/mode
:任何一位匹配都行
-mode
:所有都得匹配
2、多條件查詢,條件間邏輯關係:
並:-a
或:-o
非:!, -not
若省略連線符則預設為是「並」關係
3、處理動作:
預設動作。將查詢結果輸出
-ls
:將查詢結果詳細輸出
-ok command \;
執行命令並提醒使用者確認
-exec command \;
執行命令不提醒
其中{}
是乙個佔位符,表示對查詢的結果執行命令
\; 固定格式
4、例項應用
1、使用
group
和nogroup選項
就像user
和nouser
選項一樣,針對檔案所屬於的使用者組,
find
命令也具有同樣的選項,為了在
目錄下查詢屬於
gem使用者組的檔案,可以用:
要查詢沒有有效所屬使用者組的所有檔案,可以使用
nogroup
選項。下面的
find
命令從檔案系統的根目錄處查詢這樣的檔案
$ find / -nogroup-print
2、按照更改時間或訪問時間等查詢檔案
如果希望按照更改時間來查詢檔案,可以使用
mtime,atime
或ctime
選項。如果系統突然沒有可用空間了,很有可能某乙個檔案的長度在此期間增長迅速,這時就可以用
mtime
選項來查詢這樣的檔案。
用減號-
來限定更改時間在距今
n日以內的檔案,而用加號
+來限定更改時間在距今
n日以前的檔案。
希望在系統根目錄下查詢更改時間在
5日以內的檔案,可以用:
$ find / -mtime -5 -print
為了在/var/adm
目錄下查詢更改時間在
3日以前的檔案,可以用:
$ find /var/adm -mtime +3 -print (5)
查詢/etc
目錄下大於
1m的檔案,並將其檔名寫入
/tmp/etc.largefiles
檔案中;
find /etc -size +1m -exec {} > /tmp/etc.largefiles
Linux命令之find命令
在檔案系統上查詢符合條件的檔案 檔案查詢 locate,find 非實時查詢 資料庫查詢 locate 實時查詢 find locate 依賴於事先構建的索引,索引的構建是在系統較為空閒時自動進行 週期性任務 手動更新資料庫 updatedb 索引構建過程需要遍歷整個根檔案系統,極消耗資源 工作特點...
總結linux下find命令
在linux中,特別是自己學習時經常會用的find命令 find name april 在當前目錄下查詢以april開始的檔案 find name april fprint file 在當前目錄下查詢以april開始的檔案,並把結果輸出到file中 find name ap o name may 查...
find 排除 Linux 命令之 find 用法
1.概述 使用linux server命令列系統時,經常需要進行特定檔案的查詢,主要的查詢命令是find及grep,區別如下 1.1 find 根據檔案屬性進行查詢,如檔名 檔案大小 檔案所有者 訪問時間 修改時間 是否為空等 1.2 grep 根據檔案內容查詢,會對檔案的每一行按照給定的模式進行匹...