find 查詢檔案或目錄 及du命令
阿新 • • 發佈:2020-11-12
格式
find /data -type f
find /data -type f -name "name"
[root@oldboyedu ~]# find ./ -type f # 查詢當前目錄 並且顯示隱藏檔案
預設顯示目錄及目錄以下所有符合的檔案
按照名稱查詢
[root@oldboyedu dir]# find ./ -type f -name "1.txt"
......
* 表示匹配任意的字元 匹配以.txt結尾的檔案 [root@oldboyedu dir]# find ./ -type f -name "*.txt ...... [root@oldboyedu dir]# find ./ -type f -name "[1-3].txt" ...... 匹配以.bak結尾的檔案 [root@oldboyedu dir]# find ./ -type f -name "*.bak" ......
?代表任意單個字元 ---> 萬用字元匹配 大部分命令都支援
[root@oldboyedu dir]# find ./ -type f -name "1.t?t"
....
拓展 : 找出最長的一行的那個個數 [root@oldboyedu dir]# cat 1.txt 123456 123456789 12 [root@oldboyedu dir]# cat 1.txt|wc -L 9 檢視brt-action-analyze-vmcore的個數 [root@oldboyedu dir]# echo abrt-action-analyze-vmcore|wc -L 26 檢視password的每個單詞出現的個數 [root@oldboyedu dir]# cat /etc/passwd|sed -r 's#[:\]# #g'|xargs -n1|sort |uniq -c|sort -rn
按照大小查詢
-size k M G
查詢大於90M的檔案
[root@oldboyedu ~]# find ./ -type f -size +90M
......
查詢小於90M的檔案
[root@oldboyedu ~]# find ./ -type f -size -90M
......
查詢大於80並且小於90的檔案 -and 並且 -or 或者 [root@oldboyedu ~]# find ./ -type f -size +80M -and -size -90M # find預設就是並且關係 | | 所以 -and 可省略 ↓ [root@oldboyedu ~]# find ./ -type f -size +80M -size -90M ...... [root@oldboyedu ~]# find ./ -type f -size +80M -or -size +90M ......
按目錄大小
檔案的大小是不會影響目錄的大小
目錄中存放著下級的所有的檔名和目錄名
檔案越多 目錄越大 小檔案過多 inode不夠用
如何找小檔案 目錄越大 小檔案越多
ind ./ -type d -size +1M
如果過長可用下面
find dir/ -type f -name "*.txt"|xargs rm
du 檢視當前目錄下檔案大小
[root@oldboyedu ~]# du -h
0 ./.pki/nssdb
0 ./.pki
0 ./dir/oldboy
651M ./dir
731M .
[root@oldboyedu ~]# du -h dir/
0 dir/oldboy
651M dir/
[root@oldboyedu ~]# du -h dir/*
651M dir/all.hosts
0 dir/oldboy
0 dir/oldboy.bak
[root@oldboyedu ~]# du -h /mnt
9.8G /mnt
[root@oldboyedu ~]# du -h /mnt/*
9.8G /mnt/10g.txt
find查詢到的檔案 如何cp rm mv
cp
方法1: 把前面的內容 -i插入 到後面
[root@oldboyedu ~]# find ./ -type f -name "test.sh"|xargs -i cp {} /opt
方法2: 把前面的內容 cp複製 到後面
[root@oldboyedu ~]# find ./ -type f -name "test.sh" -exec cp {} /tmp \; ————> ;在這裡㓟特殊含義 用\轉義
方法3: 用反引號 把執行的命令留在原地再供其他命令使用
[root@oldboyedu ~]# cp `find ./ -type f -name "test.sh"` /etc/