一、檔案型別:
- f:表示普通檔案
- b:表示塊裝置
- c:表示位元組檔案
- d:標識目錄
- l:標識軟連結
二、實踐案例:
1、準備工作:
[root@web01 web_test]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 17 18:32 1.txt
-rw-r--r--. 1 root root 0 Aug 17 18:32 2.txt
-rw-r--r--. 1 root root 0 Aug 17 18:32 3.txt
-rw-r--r--. 1 root root 0 Aug 17 18:32 4.txt
-rw-r--r--. 1 root root 0 Aug 17 18:32 5.txt
-rw-r--r--. 1 root root 0 Aug 17 18:32 6.txt
-rw-r--r--. 1 root root 0 Aug 17 18:32 7.txt
drwxr-xr-x. 2 root root 6 Aug 17 18:41 web1
drwxr-xr-x. 2 root root 6 Aug 17 18:41 web2
drwxr-xr-x. 2 root root 6 Aug 17 18:41 web3
2、實踐
1、查詢所有普通檔案
[root@web01 web_test]# find ./ -type f
./1.txt
./2.txt
./3.txt
./4.txt
./5.txt
./6.txt
./7.txt
2、查詢所有目錄檔案
[root@web01 ~]# find web_test/ -type d # 使用絕對路徑
web_test/
web_test/web1
web_test/web2
web_test/web3
3、查詢位元組檔案
[root@web01 ~]# find /dev/ -type c|grep null
/dev/null
[root@web01 ~]# find /dev/ -type c|grep zero
/dev/zero
3、根據需求建立指定1G檔案大小檔案
[root@web01 ~]# dd if=/dev/zero of=test.txt bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.72317 s, 288 MB/s
[root@web01 ~]# ll -d test.txt
-rw-r--r--. 1 root root 1073741824 Aug 17 18:53 test.txt
三、find按照修改時間查詢所需檔案/目錄
- atime:訪問時間
- mtime:修改時間[常用]
- ctime:改變時間
1、實踐:
mtime 1 # 修改時間為1天前
mtime 0 # 表示當天1天內
mtime +1 # 表示1天前的
案例1:查詢修改時間為10天前的
[root@web01 web_test]# find ./ -mtime +10
./
./1.log
./2.log
./3.log
四、小結:
find ./ -name # 按照名稱查詢
find ./ -iname # 不區分大小寫
find ./ -name "*.txt" # 表示所有的.txt結尾
find ./ -name "oldboy*" # 表示所有oldboy開頭的檔案
find ./ -type f # 按照型別查詢
型別:f d b l
find ./ -inum inode號碼
find ./ -size +10M # 按照大小查詢
# 大小10M 等於10M | +10M 大於10M | -10M 小於10M
find ./ -mtime +7 # 按照檔案的修改時間查詢
# 時間 +7 大於7天前 | -7 7天內 | 7 第7天的
find ./ -maxdepth 1 -name # 按照深度等級查詢
並且關係:-a and
find ./ -type f -name "*.txt"
find ./ -size +10M -size -1G
或者關係:-o or
find ./ -type f -o -size +10M
五、find查詢到的內容交給其他命令如何處理
1、使用xargs處理find的結果
1、find查詢到的內容進行刪除,交給rm處理
xargs後面的別名無效
[root@web01 web_test]# find ./ -name "3.txt" | xargs rm
[root@web01 web_test]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 24 16:43 1.txt
-rw-r--r-- 1 root root 0 Nov 24 16:43 2.txt
查詢到內容交給ls檢視
[root@web01 web_test]# find ./ -name "2.txt" | xargs ls -l
-rw-r--r-- 1 root root 0 Nov 24 16:43 ./2.txt
2、find查詢到的內容進行復制,交給cp命令
[root@web01 web_test]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 24 17:54 10.txt
-rw-r--r-- 1 root root 0 Nov 24 16:43 1.txt
-rw-r--r-- 1 root root 0 Nov 24 16:43 2.txt
-rw-r--r-- 1 root root 0 Nov 24 17:54 45.txt
[root@web01 web_test]# find ./ -name "*.txt" | xargs -i cp {} /opt/ # i屬於佔位符;如果需要遞迴查詢需要讓cp也遞迴即:cp -r--->遞迴複製
[root@web01 web_test]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Nov 24 18:00 10.txt
-rw-r--r-- 1 root root 0 Nov 24 18:00 1.txt
-rw-r--r-- 1 root root 0 Nov 24 18:00 2.txt
-rw-r--r-- 1 root root 0 Nov 24 18:00 45.txt
3、find查詢到的內容進行復制,交給mv命令
[root@web01 web_test]# find /opt/ -name "*.txt"|xargs -i mv {} /tmp/
[root@web01 web_test]# ll /opt/
total 0
drwxr-xr-x. 9 root root 173 Nov 24 18:02 gitlab
[root@web01 web_test]# ll /tmp/
total 0
-rw-r--r-- 1 root root 0 Nov 24 18:05 10.txt
-rw-r--r-- 1 root root 0 Nov 24 18:05 1.txt
-rw-r--r-- 1 root root 0 Nov 24 18:05 2.txt
-rw-r--r-- 1 root root 0 Nov 24 18:05 45.txt
2、使用exec處理find的結果
1、find查詢到的內容進行刪除,交給rm處理
[root@web01 web_test]# find ./ -name "1.txt" -exec rm {} \; # \表示跳棍,用來修飾;表示本意,這樣也就修飾了“;”不是用於表示後面還有
[root@web01 web_test]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 24 17:54 10.txt
-rw-r--r-- 1 root root 0 Nov 24 16:43 2.txt
-rw-r--r-- 1 root root 0 Nov 24 17:54 45.txt
2、find查詢到的內容進行復制,交給cp命令
[root@web01 web_test]# find ./ -name "*.txt" -exec cp {} /opt/ \;
[root@web01 web_test]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Nov 24 18:16 10.txt
-rw-r--r-- 1 root root 0 Nov 24 18:16 2.txt
-rw-r--r-- 1 root root 0 Nov 24 18:16 45.txt
3、find查詢到的內容進行復制,交給mv命令
[root@web01 web_test]# find /opt/ -name "*.txt" -exec mv {} /tmp/ \;
3、find的結果交給其他命令使用
1、find的結果交給rm命令
[root@web01 web_test]# rm -rf `find ./ -name "2.txt"`
或者
[root@web01 web_test]# rm -rf $(find ./ -name "2.txt")
[root@web01 web_test]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 24 17:54 10.txt
-rw-r--r-- 1 root root 0 Nov 24 17:54 45.txt
2、find結果交給cp命令
[root@web01 web_test]# cp `find ./ -name "10.txt"· /opt/
[root@web01 web_test]# rm -rf `find /opt/ -type f -mtime +7` # 7天前的
3、find結果交給ls或者mv
[root@web01 web_test]# mv `find ./ -name "*.txt"` /opt/
[root@web01 web_test]#cd /opt/
[root@web01 opt]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 24 17:54 10.txt
-rw-r--r-- 1 root root 0 Nov 24 17:54 45.txt