1. 程式人生 > >linux系統使用之find命令常用用法集錦

linux系統使用之find命令常用用法集錦

find命令 linux系統

find命令用來在指定目錄下查找文件。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。


find 命令路徑: /bin/find

功能描述:文件搜索

find [目錄] [條件] [動作]

[目錄]

不輸入代表當前目錄

例:

find 顯示當前目錄的所有文件

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參數

指路->一條Linux的小技巧-刪除N天前文件

查找 /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 要執行的命令

{} 表示查找出來了文件內容

\; {}\;之間要有空格。 固定語法,就是以這個結尾;


閱讀原文請點擊這裏,關註公眾號“睿普Eflypro”即可了解更多技術文章哦~~~


下一期,traceroute命令的使用,敬請期待~



linux系統使用之find命令常用用法集錦