find,查找的意思,作用是在系統當中搜索符合條件的文件。
find命令與locate命令的區別:
locate: 1) 非實時查找;
2) 依賴於索引,而索引構建非常占用資源,索引的創建是在系統空閒時系統自動進行,
可以用updatedb命令更新索引;
3) 查找速度快;
4) 非精准查找。
find : 1) 實時查找;
2) 精准查找 (系統上實時的有就是有沒有就是沒有);
3) 精確查找 (查找結果絕對符合查找條件才予顯示);
4) 查找速度慢。
1. 命令格式:
find [搜索范圍] [搜索條件] [處理動作]
2. 常用搜索條件選項:
-name "文件名稱" : 按照文件名來搜索(可以使用通配符);
通配符有 :* (匹配任意多個字符)
? (匹配任意一個字符)
[] (匹配任意一個中括號內的字符)
[^] (匹配任意一個不在中括號內的字符)
-iname "文件名稱" : 按照文件名來搜索,並忽略大小寫(可以使用通配符);
-user 用戶名 : 按照所有者搜索;
-nouser 用戶名 : 搜索沒有所有者的文件;
-type 文件類型 : 根據文件類型進行搜索;
文件類型有:b (塊設備文件)
c (字符設備文件)
d (目錄文件)
f (普通文件)
l (符號鏈接文件)
s (套接字文件)
p (命名管道文件)
-mtime 單位屬性 : 按修改文件的時間進行搜索(單位為"天");
例如 : -mtime -10 (搜索10天內修改過的文件)
-mtime 10 (搜索10天前當天修改過的文件)
-mtime +10 (搜索10天前修改過的文件)
-atime 單位屬性 : 按文件訪問時間進行搜索(單位為"天");
-ctime 單位屬性 : 按文件屬性改變的時間進行搜索(單位為"天");
-mmin 單位屬性 : 按修改文件的時間進行搜索(單位為"分");
-amin 單位屬性 : 按文件訪問時間進行搜索(單位為"分");
-cmin 單位屬性 : 按文件屬性改變的時間進行搜索(單位為"分");
-size 單位屬性 : 按文件大小來進行搜索;
例如 : -size -10k (搜索文件大小小於10K的文件)
-size 10k (搜索文件大小為10K的文件)
-size +10k (搜索文件大小大於10K的文件)
-size -25M (搜索文件大小小於25M的文件)
(注意:"k"為小寫,"M"為大寫)
-a : 組合條件"與"(and)
-o : 組合條件"或"(or)
-not|! : 組合條件"取反"
3. 常用處理動作:
"-print" 默認處理動作;
"-ls" 作用相當於"ls -l";
"-exec 命令 {} \;" 對查找到的文件執行指定的命令,
命令後面的{}表示,查找到什麼就引用什麼;
"-ok 命令 {} \;" 這是個交互式的"-exec",每操作一次就需要你確認下。
4. 常用范例:
1) 查找/root/py目錄下,名為"test1.py"的文件。
<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:sql;">
2) 查找/root/py目錄下,名為"test1.py"的文件(忽略大小寫區別)。
3) 查找/root/py目錄下,以".py"結尾的文件。
4) 查找/root/py目錄下,名為"test1.py"或"test2.py"的文件。
5) 查找/root/py目錄下,以".py"結尾並且所有者為"root"的文件。
6) 查找當前日志目錄中,"2天以內"修改過的日志文件。
7) 查找當前日志目錄中,"7天以前"修改過的日志文件並進行刪除。
8) 查找當前日志目錄中,文件"大於25K"的文件,並進行人性化顯示。
9) 查找當前日志目錄中,文件"大於25K並小於50K"的文件,並進行人性化顯示。