find命令用來在指定目錄下查找文件。若是使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。而且將查找到的子目錄和文件所有進行顯示。shell
find 命令路徑: /bin/find安全
功能描述:文件搜索socket
find [目錄] [條件] [動做]3d
[目錄]blog
不輸入表明當前目錄get
例:io
find 顯示當前目錄的全部文件route
find /boot 顯示boot目錄的全部文件搜索
[條件] 權限
(1)用戶和組:-user -group
例:查找home目錄下全部的屬於指定的文件
find /home/ -user abc
(2)根據文件類型來查找:(通常查找文件或者目錄)
類型:-type ( f 文件,d 目錄,l 鏈接,p 管道,c 字符文件,b 塊文件,s socket文件 )
find /home/ -type f
find /home/ -type d
(3)文件名:-name
例:查找名字包含2017的文件
find /home/ -name *2017*
(4)大小:-size + 大於 - 小於
例:找到boot目錄下大於5M文件
find /boot/ -size +5M
(5)時間: -mtime -atime -ctime
ctime:「屬性改變時間(change time)」
mtime:「內容修改時間(modification time)」
Atime:「文件訪問時間(access time)」
+N:N天以前 -N:N天以內
例:查找出root目錄2天以前修改過的文件
find /root/ -mtime +2
查找root目錄下3天以內修改過的文件
find /root/ -mtime -3
同理 ctime 和atime 同樣的用法
(6)權限:-perm
例:查找等於0775權限的文件或目錄
find /boot/ -perm 755
至少有777權限的文件或目錄
find /tmp/ -perm -777
(7)查找的目錄深度:
例:只查找目錄第二層的文件和目錄
find /boot/ -maxdepth 2
(8)多條件:
參數:
-a:與-and
-o:或-or
!:非 -not
例:找出來boot目錄下文件大小在5~10M之間的文件或目錄
find /boot/ -size +5M -a -size -10M
匹配root目錄下不是文件類型 或者 權限至少是755
find /root ! -type f -o -perm -755
[動做]
-print: find命令將匹配的文件輸出到標準輸出
-ls:使用ls -dils 格式將匹配的文件輸出到標準輸出
-exec: find命令對匹配的文件直接執行該參數所給出的shell命令
-ok: 和-exec的做用相同,以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每個命令以前,都會給出提示,讓用戶來肯定是否執行
例:
find /var/log/ -mtime +100 -name "*.log" -ls
find /var/log/ -mtime +100 -name "*.log" -print
上篇介紹刪除90天以前的文件,就是使用mtime 參數和-exec參數
查找 /var/log/目錄下90天以前修改過的文件名字匹配爲 "*.log" 結尾而且刪除
find /var/log/ -mtime +90 -name "*.log" -exec rm -rf {} \;
find /var/log/ -mtime +90 -name "*.log" -ok rm -rf {} \;
參數解釋:
-ok 和 -exec 同樣都是執行命令
rm 要執行的命令
{} 表示查找出來了文件內容
\; {} 和 \;之間要有空格。 固定語法,就是以這個結尾「;」
下一期,traceroute命令的使用,敬請期待~