有段時間的筆記了,發(fā)出來與大家分享
基本
find 【搜索位置】 【參數】
find /home -name abc[cd]
find /home -iname abc 不區(qū)分大小寫
find /home -user root 按所有者搜索
find /home -nouser 查找沒所有者的文件
- 匹配任意內容
? 匹配任意一個字符
[] 匹配任意一個中括號內的字符
如果提示路徑必須在表達式之前,那就要將表達式用引號包含起來,例如find /home -name "*.h"
find /home -mtime -10 -size -300k
-10 以當天為標志往前10天 到 當天
10 以當天為標準往前10天 的 當天
+10 以當天為標準往前10天 的 之前
-atime [access time] 訪問
-ctime [change time] 改變文件屬性
-mtime [modify time] 修改文件內容
find ./ -perm 775
-perm 按照文件權限找
-follow 倘若find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-size 按文件大小查找
-1k 小于
1k 等于
+1k 大于
k小寫 M大寫
-inum 查找特定inode節(jié)點的文件
-type 按文件類型找
| 參數 | 類型 |
|---|---|
| b | 塊設備文件 |
| d | 目錄 |
| c | 字符設備文件 |
| p | 管道 |
| l | 符號鏈接 |
| f | 一般文件 |
可以聯合起來幾個條件例如
find /etc -size +100k -a -size -200k -exec ls -lh {} ;
-a and
-o or
-exec ls -lh {} ; 之后同時執(zhí)行 ls -lh , -exec 和 {} \; 配對出現
結合 wc 統(tǒng)計行數
wc 【參數】【文件】
-c 統(tǒng)計字節(jié)數。
-l 統(tǒng)計行數。
-m 統(tǒng)計字符數。這個標志不能與 -c 標志一起使用。
統(tǒng)計符合條件的文件數
find ./ -name "*.h" | wc -l
直接輸出答案
統(tǒng)計符合條件的文件的行數 1
find ./ -name "*.h" -exec wc -l {} \;
顯示文件名和行數,結果示例
101 ./a.h
80 ./b.h
20 ./c.h
118 ./d.h
91 ./e.h
統(tǒng)計符合條件的文件的行數 2
find ./ -name "*.h" -print0 | xargs -0 wc -l
效果同上,-print0 是用"\0" 分割結果,xargs -0 是把結果分開。find 默認用 -print 輸出,會換行。
可以看二進制顯示的結果
yping@deepin:~/test$ find ./ -name "*.h" -print | xxd -b
00000000: 00101110 00101111 01100001 00101110 01101000 00001010 ./a.h.
yping@deepin:~/test$ find ./ -name "*.h" -print0 | xxd -b
00000000: 00101110 00101111 01100001 00101110 01101000 00000000 ./a.h.