目錄
find命令
1、find命令
find命令:根據文件的名稱或者屬性查找文件。
2、語法格式
find 查找范圍 參數
3、通用參數
3.1 -name
-name : 按照文件的名字查找文件,區分大小寫 (* :通配符)
# 案例1:查詢etc目錄下的hosts文件 : find /etc/ -name 'hosts'
# 案例2:查詢etc目錄下名稱中包含hosts的文件: find /etc/ -name '*hosts*'
3.2 -iname
-iname : 按照文件的名字查找文件,忽略大小寫 (* :通配符)
# 案例:忽略大小寫查詢etc目錄下名稱中包含hosts的文件:find /etc/ -iname '*hosts*'
3.3 -size
-size: 按文件的大小查詢
+ :大於
- :小於
沒有符號: 等於
# 案例:查找當前目錄下文件小於1M大小的文件: find ./ -size -1M
3.4 -mtime
-mtime : 查找最后修改時間查詢(默認按天算)
+數字 :n 天以前的(默認+,所以可以省略)
-數字 :n 天以內的
-atime: 按最后訪問時間查詢
-ctime: 按最后修改屬性時間查詢
# 案例:查找當前目錄下文件最后修改時間在1天以前的所有文件:find ./ -mtime 1
3.5 -user
-user : 按照用戶的屬主查詢
# 案例:查找home目錄下屬主為bgx的文件:find /home/ -user bgx
3.6 -group
-group :按照用戶的屬組查詢
# 案例7:查找home目錄下屬組為hr的文件:find /home/ -group hr
3.7 -type
-type : 按照文件的類型查詢
# 文件類型:
f : 普通文件
d : 文件夾
l : 鏈接文件
s : 套接字文件
p : 管道文件
c : 字符文件
b :磁盤文件
# 案例1:按照文件類型查找當前目錄下的文件夾:find ./ -type d
# 案例2:要求把/etc目錄下,所有的普通文件打包壓縮到/tmp目錄:tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
3.8 -perm
-perm : 按照文件的權限查詢(按數字權限)
# 案例9:查找當前文件中權限為755的文件:find ./ -perm 755
3.9 -inum
9. -inum : 按照index node號碼查詢
# 案例10:查找inode編號為17610952的文件:find ./ -inum 17610952
4、配合使用參數
4.1 -a
-a : 並且(可以省略,默認是-a)
4.2 -o
-o : 或者
4.3 -maxdepth
-maxdepth : 查詢目錄深度(必須放置於第一個參數)
# 案例1:查找etc目錄下目錄深度為3,名字包含ens開頭的文件:find /etc/ -maxdepth 3 -iname 'ifcfg-ens*'
# 案例2:查詢當前目錄下目錄深度為2或者文件名中以txt結尾的所有文件:find ./ -maxdepth 2 -o -name '*.txt'
# 知識儲備:
1. dd : 生成文件(常用來造文件來測試):
dd if=/dev/zero of=100.txt bs=10M count=10
if : 從什么地方讀
of : 寫入到什么文件
bs : 每次寫入多少大小
count : 寫入多少次
2. |: 管道符,意思是把一個命令的結果交給后面一個命令處理。
3. xarg : 把處理的文本變成以空格分割的一行
4. `` :提前執行命令,然后將結果交給其他命令來處理
4.4 -exec
-exec :把find處理好的結果交給其他命令並繼續處理。