一、命令介紹 find 命令用於按照指定條件來查找文件。 一些比較常用參數如下表 參數 作用 -name 匹配名稱 -perm 匹配許可權mode為完全匹配( –mode包含即可) -user 匹配所有者 -group 匹配所有組 -mtime –n +n 匹配修改內容時間(-n n天以內 +n n天 ...
一、命令介紹
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的小白,我與你們一起學習,一起進步!
文章不當之處,望各位指正