linux find命令用來在指定目錄下查找文件。任何位於參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部顯示。

一:find作用
find作用:
根據文件的名稱或者屬性查找文件。
二:find參數
參數:
-name : 按照文件的名字查找文件
* : 通配符(位置零個或多個任意字符)
-iname : 按照文件的名字查找文件(忽略大小寫)
-size : 按照文件的大小查找文件
+ : 大於
- : 小於
沒符號 : 等於
-mtime : 按照修改時間去查詢
+(可以省略) : n天以前(大於n天)
- : n天以內(小於n天)
相等功能:
-atime
-ctime
-user : 按照用戶的屬主查詢
-group : 按照用戶的屬組查詢
-type : 按照文件的類型查詢
d : 文件夾
f : 普通文件
l : 鏈接文件
s : 套子接文件
p : 管道文件
c : 字符文件
b : 磁盤文件
-perm : 按照文件的權限查詢
-inum : 根據index node號碼查詢
-maxdepth : 查詢的目錄深度(必須放置與第一個參數位)
(以下參數不能單獨使用)
-a : 並且(可以省略, 默認時並且)
-o : 或者
-exec : 將find處理好的結果交給其他命令繼續處理

三:find實戰案例:
案例1:
查詢/etc目錄下hosts文件
[root@localhost ~]# find /etc/ -name 'hosts'
案例2:
查詢/etc目錄下名稱文件包含hosts文件(通配符)
[root@localhost ~]# find /etc/ -name '*hosts'
案例3:
查詢/etc目錄下名稱文件包含hosts文件(忽略大小寫)
[root@localhost ~]# find /etc/ -iname 'hosts'
案例4:
查詢/etc目錄文件的大小(大於,小於)
1.大於
[root@localhost ~]# find /etc/ -size +1M
2.小於
[root@localhost ~]# find /etc/ -size -1M
案例5:
按照文件修改時間去/etc/查詢
1. 3天以前(不加+默認以前)
find /etc/ -mtime 3
1. 3天以內
find /etc/ -mtime -3
案例6:
用戶路徑tmp
按照用戶的屬主查詢
find ./ -user root
案例7:
按照用戶的屬組查詢
find ./ -group root
案例8:
按照文件的類型查找
find ./ -type f
案例9:
按照文件的權限查詢
find ./ -perm 644
案例10:
查詢文件的編號 ll -i
find ./ -inum 1011
案例11:
查詢目錄深度
find /etc/ -maxdepth 2 -name 'ifcfg-ens*'
查詢目錄深度(-o)都匹配
find /etc/ -maxdepth 2 -o -name 'ifcfg-ens*'
案例: 要求把/etc目錄下,所有的普通文件打包壓縮到/tmp目錄
[root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
解析:
| : 前面一個命令的結果交給后面一個命令處理
xargs : 把處理的文本變成以空格分割的一行
`` : 提前執行命令,然后將結果交給其他命令來處理
知識儲備: 生成100M文件
[root@localhost ~]# dd if=/dev/zero of=100.txt bs=10M count=10
解析:
dd : 生成文件
if : 從什么地方讀
of : 寫入到什么文件
bs : 每次寫入多少內容
count : 寫入多少次