find命令詳解
基本介紹
find命令用來從目錄系統中查找文本
不同于locate,find不從數據庫中查找文件,所以find速度略遜于locate,但find是實時且準確的,而且不需要占用系統資源進行遍歷文件。 其標準格式如下
find [-H] [-L] [-P] [-D debugopts] [-O level] [path...] [expression]
[OPTION] 選項
- -P 為默認選項 不跟隨顯示符號鏈接文件,只顯示符號鏈接文件本身
- -H -L -D 并不常用,此處暫且不表。
- -Olevel 可以進行優化配置,默認為1。(大寫o直接跟數字不帶空格) 總共有-O0 -O1 -O2 -O3 四階。其中-O0等同于-O1,-O1為默認選項 -O2和-O3用不到
[PATH. . .] 路徑
該文件路徑為文件查找的起始路徑,即在哪個文件下查找所需要的文件
[EXPRESSION] 表達式
find命令通過與表達式相匹配來鎖定要搜索的文件。常用表達式如下:
-name 按【文件名稱】查找文件,支持通配符,匹配文件的basename -iname 同-name 忽略大小寫 -inum 按【inod號】查找文件 -samefile name 查找硬鏈接文件 -links n 查找鏈接數為n的文件 -regex “PATTERN” 使用正則表達式查詢文,此處正則表達式有異于grep的正則表達式,而且匹配的字符不是basename,而是/dirname/basename
根據文件屬主屬組查找
-user USERNAME 按【屬主】查找文件 -group GROUPNAME 按【屬組】查找文件 -uid UID 按【UID】查找文件 -gid GID 按【GID】查找文件 -nouser 查找無屬主的文件或目錄 -nogroup 查找無屬組的文件或目錄
根據文件類型查找
-type TYPE 查找特定文件類型的文件
其中文件類型包括
f 普通文件
d 目錄文件
l 符號鏈接文件
s 套接字文件 b 塊設備文件
c 字符設備文件 p 管道文件
根據文件大小查找
-size [+|-]#UNIT #代表數字;UNIT為常用文件大小單位:k、M、G
# 代表范圍 (#-1,#] +# 代表范圍 (0,#-1] -# 代表范圍 (#,+∞)
根據時間戳查找
以“天”為單位
-atime[+|-]# -mtime[+|-]# -ctime[+|-]#
以“分鐘”為單位
-amin[+|-]# -mmin[+|-]# -cmin[+|-]#
這里的[+|-]#用法與文件大小的用法相同
# 代表范圍 (#-1,#] +# 代表范圍 (0,#-1] -# 代表范圍 (#,+∞)
根據文件權限查找
-perm /MODE -perm -MODE -perm MODE
MODE為數字格式表現的屬主屬組其他用戶的權限,例如:
775 代表 rwxrwxr-x 664 代表 rw-rw-r--
-perm /MODE 屬主、屬組、其他三者,滿足rwx其中任意一項即可匹配 -perm -MODE 屬主、屬組、其他三者都滿足rwx即可匹配 -perm MODE 屬主、屬組、其他權限與MODE完全相同
find命令的邏輯組合
find命令可以用邏輯命令匹配滿足多個條件的文件
-a “與”運算,可以省略 -o “或”運算 -not或者! “非運算”
查找文件后的處理動作
-print 打印到屏幕上 -ls 打印到屏幕上 類似于“ls -l” -delete 刪除制定查找的文件 -fls /PATH/TO/FILE 將查找到的內容輸出至文件FILE中 -ok COMMAND {} ;\ 對查找到的文件進行COMMAND指令,{}為前面文件查找內容,交互式動作之前會有提示 -exec COMMAND {} ;\ 對查找到的文件進行COMMAND指令,{}為前面文件查找內容,非交互式動作之前無提示
原創文章,作者:easyTang,如若轉載,請注明出處:http://www.www58058.com/72909
寫的內容雖然不多,但卻很給人以精細感,主要介紹了find命令的用法,內容寫的很詳細,排版也很不錯