一、命令介紹
find 命令用於按照指定條件來查找文件。
一些比較常用參數如下表
| 參數 |
作用 |
| -name |
匹配名稱 |
| -perm |
匹配權限mode為完全匹配( –mode包含即可) |
| -user |
匹配所有者 |
| -group |
匹配所有組 |
| -mtime –n +n |
匹配修改內容時間(-n n天以內 +n n天之前) |
| -atime –n +n |
匹配訪問內容時間(-n n天以內 +n n天之前) |
| -ctime –n +n |
匹配修改文件權限時間(-n n天以內 +n n天之前) |
| -nouser |
匹配無所有者文件 |
| -nogroup |
匹配無所有組文件 |
| -newer file1 !file2 |
匹配比file1新 比file2舊的文件 |
| --type b/d/c/p/l/f |
匹配文件類型(參數依次塊設備、目錄、字符設備、管道、鏈接文件、文本文件) |
| -size |
匹配文件的大小(+為超過設定值大小的文件,-為小於設定值大小的文件) |
| -prune |
忽略某個目錄 |
| -exec…………{}\; |
后面可跟用於進一步處理搜索結果的命令 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二、實例
想要搜索 /etc 目錄下 ,文件名以pass開頭的文件有哪些,我們該如何操作呢?
find /etc -name "pass*"

可以看到,當我執行完上述命令后,/etc 及其子目錄下所有文件名以 pass 開頭的文件就全部列出了
如果我們想要搜索 /home 目錄下所有的一般文本文件,該怎么操作呢?
find /home -type f

我們要搜索 /home 目錄下 修改時間是天內的文件,
find /home -mtime - 1

同理, -a -c 參數 根據自己不同的篩選條件來使用。
查找當前目錄中文件屬主具有讀、寫權限,並且文件所屬組的用戶和其他用戶具有讀權限的文件,並顯示出這些文件的文件類型。
find -type f -perm 644 -exec file {} \;

-exec ....... {}\; 參數類似於管道符 上述我們按照我們篩選的條件找出文件 ,利用-exec....{}\; 命令連接 file命令,實現查看文件類型。
接下來我們查找當前目錄小於5K的文件,並列出文件詳細信息
find -size -5k -exec ls -l {} \;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
三、總結
在Linux系統中,搜索工作一般都是通過find來完成的,find命令可以以不同的文件特性作為匹配條件,所有find命令非常強大,
想要熟練自如的運用Linux命令,只能通過不斷的練習。
我是一個剛剛接觸Linux的小白,我與你們一起學習,一起進步!
文章不當之處,望各位指正
