一、find命令
???find介紹:
???find是可以通過文件名稱、類型、大小、權限屬性、時間戳等條件在指定目錄下查找對應文件或者目錄的工具;還可以配合相關命令對匹配到的文件作出后續處理。
二、工作原理及特點
???find在查找文件時會遍歷指定的目錄,具有以下特點:
三、命令用法
find [path...] [expression]
# [path...]為需要查找文件所指定的路徑。如果不指定,則默認為當前目錄及其子目錄。
# [expression]為匹配條件/表達式。如果未設置匹配條件,則默認查找指定目錄及子目錄下所有文件
3.1 指定搜索目錄層級/深度
??格式:find 目錄 -maxdepth 深度 -name “*.conf”
??-maxdepth level 指定最大搜索目錄深度level,指定的目錄為第1級
??-mindepth level 指定最小搜索目錄深度level。配合-maxdepth可搜索指定深度的文件。
[root@localhost /]# find / -maxdepth 2 -name "*.conf"
/etc/srp_daemon.conf
/etc/man_db.conf
3.2 根據文件名和inode查找
??-name “FILE_NAME” 文件名查找,支持使用glob:*、?、[]、[^]
??-iname “FILE_NAME” 文件名查找,不區分大小寫
??-inum n 按inode號查找
??-samefile name 查找與指定文件有相同inode號的文件,一般用于查找硬連接文件
??-links n 查找連接數為N的文件
??-regex “PATTERN” 以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱
??格式:find 目錄 -name “f”
[root@localhost /]# find . -name "f*"
3.3 根據屬主/屬組查找
??根據文件的屬性和屬組信息進行查找,用的較少
??-user username 查找屬主為指定用戶(UID)的文件
??-group groupname 查找屬組為指定組(GID)的文件
??-uid UseerID 查找屬主為指定的UID號的文件
??-gid GroupID 查找屬組為指定的GID號的文件
??-nouser 查找沒有屬主的文件
??-nogroup 查找沒有屬組的文件
[root@localhost /]# find /home -user root
/home
/home/lost+found
/home/add_disk_all.sh
/home/TopVCM_V3.1.0313_FSWX_oe2203.X86_20231205201719.bin
[root@localhost /]# find /home -group root
/home
/home/lost+found
/home/add_disk_all.sh
/home/TopVCM_V3.1.0313_FSWX_oe2203.X86_20231205201719.bin
3.4 根據文件類型查找
linux系統中的文件大致分為:普通文件、目錄文件、二進制程序文件、符號鏈接文件、套接字文件、塊設備文件、字符設備文件。命令用法為find [path] -type TYPE。TYPE的值及具體含義如下
??f 普通文件
??d 目錄文件
??l 符號鏈接文件
??s 套接字文件
??b 塊設備文件
??c 字符設備文件
??p 管道文件
[root@localhost /]# find /home -maxdepth 1 -type d
/home
/home/lost+found
/home/wp