文件查找:(以find為主) which:查找命令字所在的位置 locate:模糊匹配(只要包含關鍵字的文件都查找出來) 不是實時的,基於資料庫查找, updatedb升級locate資料庫 查找速度特別快 find:查看文件或目錄的工具 實時查找 精確查找 遍歷整個指定目錄中的文件,速度很慢 支持 ...
文件查找:(以find為主)
which:查找命令字所在的位置
locate:模糊匹配(只要包含關鍵字的文件都查找出來)
不是實時的,基於資料庫查找, updatedb升級locate資料庫
查找速度特別快
find:查看文件或目錄的工具
實時查找
精確查找
遍歷整個指定目錄中的文件,速度很慢
支持多種查找條件(屬主,屬組,許可權,文件名等)
語法: find [find_path] [條件] [處理動作]
find_path:如果不寫,預設在當前工作目錄查找
條件:如果不寫,會查找出該路徑下所有的文件處理動作:預設列印到屏幕上 print
條件:(匹配標準)
-name file_name:根據文件名進行查找,區分大小寫
-iname file_name:根據文件名進行查找,不區分大小寫
-regex PATTERN:根據正則表達式的模式進行查找
-user:通過屬主進行查找
-group:通過屬組進程查找
-uid UID:通過UID號進行查找
-gid GID:通過GID號進行查找
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
-type:根據文件類型進行查找
-b:塊設備
-c:字元設備
-d:目錄
-f:文件
-p:命名管道
-s:套接字文件
-l:鏈接文件
-size [+ | -] k m g
-size 5k:精確匹配
+:大於
-:小於
根據時間戳進行查找: # stat file_name //查看文件的時間戳
-atime:時間單位為天,access時間 -mtime:時間單位為天,modify時間 -ctime:時間單位為天,change時間 -mmin:時間單位為分鐘,modify時間 -amin:時間單位為分鐘,access時間 -cmin:時間單位為分鐘,change時間
根據許可權查找:
-perm MODE:
MODE:644,精確匹配
/MODE:任意一位匹配
-MODE:文件許可權能夠完全包含此MODE時才能匹配
條件組合:
-a:同時滿足多個條件,比如查找屬主是tom並且許可權為644的文件
-o:滿足一個條件即可,比如查找屬主是tom或者許可權為包含644的文件
-not:不滿足條件的被查找出來
出來動作:
-print:預設動作,預設查找結果列印到屏幕
-ls:預設以類似於ls -l的形式顯示結果的信息
-ok COMMAND {} \;執行動作時提示用戶是否執行,必須以\;結尾,{}代表文件名占位符
-exec COMMAND {} \;執行動作時不提示用戶直接執行,必須以\;結尾,{}代表文件名占位符
查找條件通配符:
*:通配任意個數的任意字元
# find /etc/ -name "pass*"
# find /etc/ -name "*pass"
?:通配單個的任意字元
# find /etc/ -name "passw*"
1、查找/var目錄下屬主為root並且屬組為mail的所有文件;
find /var -user root -a -group mail
2、查找/usr目錄下不屬於root,bin,或student的文件;
find /usr -not -user root -a -not -user bin -a -not -user student
find /usr -not \( -user root -o -user bin -o -user student \)
3、查找/etc目錄下最近一周內內容修改過且不屬於root及student用戶的文件;
find /etc -mtime -7 -not \ ( -user root -o -user student \) find /etc -mtime -7 -not -user root -a -not -user student
4、查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件,並將其屬主屬組均修改為root;
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
5、查找/etc目錄下大於1M的文件,並將其文件名寫入/tmp/etc.largefiles文件中;
find /etc -size +1M >> /tmp/etc.largefiles
6、查找/etc目錄下所有用戶都沒有寫許可權的文件,顯示出其詳細信息;
find /etc -not -perm /222 -ls