摘要:在Linux系統(tǒng)中,經(jīng)常需要查找某個(gè)文件或者目錄,這時(shí)就需要用到find命令了。find命令的功能是根據(jù)給定的路徑和條件查找相關(guān)文件或目錄,使用參數(shù)很多,并且支持正則表達(dá)式,結(jié)合管道符后能夠?qū)崿F(xiàn)更加復(fù)雜的功能。
本文主要介紹find命令的使用技巧,詳細(xì)內(nèi)容請(qǐng)參考下文。
一、訪問(wèn)Linux
1.登錄linux
2.查看find命令
二、Find命令介紹
1.find用法格式
語(yǔ)法格式:find [OPTION]… [ 查找路徑] [ 查找條件] [ 處理動(dòng)作]
2.find查找條件
(1)根據(jù)搜索層級(jí)
-maxdepth level 最大搜索目錄深度,-1指定目錄為第1級(jí)當(dāng)前目錄
-mindepth level 最小搜索目錄深度
(2)根據(jù)文件名和inode查找
-name:基于名稱的精確查找,支持使用文字通配符 *, ?, [], [^]
-iname:基于名稱忽略大小寫(xiě)的精確查找
-inum:基于inode查找
-samefile name:基于相同inode號(hào)的查找(查找硬鏈接)
(3)根據(jù)屬主、屬組查找
-user USERNAME:查找屬主為指定用戶(UID) 的文件
-group GRPNAME:查找屬組為指定組(GID) 的文件
-uid UserID:查找屬主為指定的UID 號(hào)的文件
-gid GroupID:查找屬組為指定的GID 號(hào)的文件
-nouser:查找沒(méi)有屬主的文件
-nogroup:查找沒(méi)有屬組的文件
(4)根據(jù)文件類(lèi)型查找
find -type
f:普通文件
d:目錄文件
l:符號(hào)鏈接文件 (軟連接)
s:套接字文件 (/dev/log)
b:塊設(shè)備文件 (/dev/sda)
c:字符設(shè)備文件 (/dev/tty)
p:管道文件
(5)根據(jù)文件大小來(lái)查找
find -size [+|-]
#UNIT 根據(jù)文件大小來(lái)查找 常用單位:k, M, G,c(byte)
#UNIT: (#-1, #] 如:6k 表示(5k,6k]
-#UNIT:[0,#-1] 如:-6k 表示[0,5k]
+#UNIT:(#,∞) 如:+6k 表示(6k,∞)
(6)根據(jù)時(shí)間戳查找
以【天】為單位
-atime [+|-]#, (訪問(wèn)時(shí)間)
-mtime (修改時(shí)間)用法同上
-ctime(元數(shù)據(jù)改變時(shí)間)用法同上
以【分鐘】為單位
-amin [+|-]#, (訪問(wèn)時(shí)間)
-mmin (修改時(shí)間)用法同上
-cmin(元數(shù)據(jù)改變時(shí)間)用法同上
(7)根據(jù)權(quán)限查找
-perm 根據(jù)權(quán)限查找
(8)組合條件查找
與:-a 可省略 例:find -nouser [-a] -nogroup
或:-o
非:-not, !
德· 摩根定律:
(非 A) 或 (非 B) = 非(A 且 B) !A -o !B = !(A -a B)
(非 A) 且 (非 B) = 非(A 或 B) !A -a !B = !(A -o B)
3.find處理動(dòng)作
-print 默認(rèn)
-delete 直接刪除所查找到的文件,不詢問(wèn)。
-ls 長(zhǎng)列出所查找到的文件,和ls -li 相似
-fls file 將查找到的文件長(zhǎng)列出導(dǎo)入到指定文件。
> file 將查詢結(jié)果導(dǎo)入file
>> file 將查詢結(jié)果追加入file
-ok command ; 對(duì)查找到的文件當(dāng)做下一命令的參數(shù)去執(zhí)行(交互式)(不要忘記最后的 ; 是固定格式)
-exec command ; 對(duì)查找到的文件當(dāng)做下一命令的參數(shù)去執(zhí)行(非交互式)
{ }: 用于引用查找到的文件名稱自身
4.find參數(shù)替換xargs
Xargs:用于產(chǎn)生某個(gè)命令的參數(shù)
用途:很多命令不支持管道| 來(lái)傳遞參數(shù),xargs 命令能傳遞所有參數(shù)
比如:find -name “*.sh” | xargs ls -l