linux下find(檔案查詢)命令的用法總結
前言:我們為什麼要學會使用find命令?
每一種作業系統都有成千上萬的檔案組成,對於linux這樣“一切皆檔案”的作業系統來說更不例外,大家應該都能很輕鬆使用windows下的檔案查詢功能,但是對linux這一功能可能並不是很熟悉,其實想玩linux的你更要牢牢掌握這個命令,因為linux不像windows那樣有固定的檔名字尾,並且因為linux陣營下百家爭鳴的特性,一個相同的檔案在不同的發行版,可能會有不同,所以如果你能牢牢掌握find命令的使用,你在摸索linux的道路上將會順利很多,同時你會發現linux下檔案查詢功能其實很簡單,而且要比windows下查詢功能強大很多很多!好,下面進入正題
Linux下查詢檔案的命令有兩個;locate 和 find
首先說下locate,locate這個命令是對其生成的資料庫進行遍歷(生成資料庫的命令:updatedb),這一特性決定了用locate查詢檔案速度很快,但是locate命令只能對檔案進行模糊匹配,在精確度上來說差了點,簡單介紹下它的兩個選項:
#locate
-i //查詢檔案的時候不區分大小寫 比如:locate –i passwd
-n //只顯示查詢結果的前N行 比如:locate -n 5 passwd
下面重點說下find,find在不指定查詢目錄的情況下是對整個系統進行遍歷查詢
使用格式 : find [指定查詢目錄] [查詢規則] [查詢完後執行的action]
[指定查詢目錄]例如:
這裡要注意的是目錄之間要用空格分開
[查詢規則]
(1)根據檔名查詢
# -name //根據檔名查詢(精確查詢)
# -iname //根據檔名查詢,但是不區分大小寫
這裡另外介紹下檔名通配的知識
*表示 通配任意的字元
?表示 通配任意的單個字元
[ ] 表示 通配括號裡面的任意一個字元
(2),根據檔案所屬使用者和組來查詢檔案
# -user //根據屬主來查詢檔案
# -group //根據屬組來查詢檔案
(3),根據uid 和 gid來查詢使用者
#find /tmp -uid 500 //查詢uid是500 的檔案
#find /tmp -gid 1000 // 查詢gid是1000的檔案
(4),-a and -o and –not的使用
# -a 連線兩個不同的條件(兩個條件必須同時滿足)
# -o 連線兩個不同的條件(兩個條件滿足其一即可)
# -not 對條件取反的
#-atime
#-mtime
#-ctime
#-amin
#-mmin
#-cmin
所以這裡atime,mtime,ctime就是分別對應的“最近一次訪問時間”“最近一次內容修改時間”“最近一次屬性修改時間”,這裡的atime的單位指的是“天”,amin的單位是分鐘
#find /tmp –atime +5 //表示查詢在五天內沒有訪問過的檔案
#find /tmp -atime -5 //表示查詢在五天內訪問過的檔案
(6),根據檔案型別來查詢檔案
-type
f // 普通檔案
d //目錄檔案
l //連結檔案
b //塊裝置檔案
c //字元裝置檔案
p //管道檔案
s //socket檔案
(7),根據大小來查詢檔案
-size
#find /tmp -size 2M //查詢在/tmp 目錄下等於2M的檔案
#find /tmp -size +2M //查詢在/tmp 目錄下大於2M的檔案
#find /tmp -size -2M //查詢在/tmp 目錄下小於2M的檔案
(8),根據檔案許可權查詢檔案
-perm
#find /tmp -perm 755 //查詢在/tmp目錄下許可權是755的檔案
#find /tmp -perm +222 //表示只要有一類使用者(屬主,屬組,其他)的匹配寫許可權就行
#find /tmp -perm -222 //表示必須所有類別使用者都滿足有寫許可權
(9),-nouser and -nogroup
#find / -nogroup –a –nouser //在整個系統中查詢既沒有屬主又沒有屬組的檔案(這樣的檔案通常是很危險的,作為系統工程師的我們應該及時清除掉)
[查詢完執行的action]
# -print //預設情況下的動作
# -ls //查詢到後用ls 顯示出來
# -ok [commend] //查詢後執行命令的時候詢問使用者是否要執行
# -exec [commend] //查詢後執行命令的時候不詢問使用者,直接執行
這裡要注意{}的使用:替代查詢到的檔案
#find /tmp -atime +30 –exec rm –rf {} \; #刪除查詢到的超過30天沒有訪問過檔案
我們也可以使用xargs來對查詢到的檔案進一步操作
相關文章
- linux下的find檔案查詢命令與grep檔案內容查詢命令Linux
- linux 查詢檔案命令 findLinux
- Unix 下使用 Find 命令查詢需要清理的檔案
- linux中查詢find命令的複雜用法Linux
- Linux檔案查詢命令find,xargs詳述Linux
- linux命令之----find用於指定目錄下查詢檔案Linux
- Linux/Unix 檔案查詢命令 find, xargs 詳述Linux
- Linux檔案查詢命令find,xargs詳述(轉)Linux
- python檔案查詢之find命令Python
- Linux檔案查詢命令find詳述(part2)Linux
- Linux檔案查詢命令find詳述(part1)Linux
- find 查詢檔案
- Find命令查詢最近幾天修改的檔案
- Linux基礎:檔案查詢findLinux
- Linux下find命令的用法(轉)Linux
- linux下使用find xargs grep查詢檔案及檔案內容Linux
- 檔案屬性及find命令總結
- Linux常用命令之檔案查詢which、find、locate命令講解Linux
- 除了find命令,還有這麼多檔案查詢命令!
- linux 命令與檔案的查詢Linux
- Linux下的五個查詢命令:grep、find、locate、whereis、whichLinux
- linux下find和cp來實現檔案的查詢和複製Linux
- linux下的檔案的查詢Linux
- Linux 檔案、內容查詢(遞迴) ,grep ,findLinux遞迴
- Linux檔案內容查詢命令Linux
- 陣列使用find查詢用法陣列
- 檔案查詢命令
- Linux 某個目錄下查詢檔案大小並排序(du),特定檔案刪除(find)Linux排序
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列
- linux批次find查詢檔案並批次替換覆蓋該檔案Linux
- linux查詢檔案或目錄命令Linux
- Linux檔案內容查詢命令(轉)Linux
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- linux 壓縮檔案的命令總結Linux
- 常用的查詢find和定位locate的用法
- find 按檔案修改時間查詢檔案及find空資料夾
- Unix 檔案查詢命令
- linux 下 對檔案內容的查詢Linux