find 命令 find 【搜索範圍】 【搜索條件】php
例如: find / -name install.log 意思:在根目錄下查找文件名爲install.log的文件。windows
注意:服務器
1. 在生產服務器上應避免這種大範圍的搜索,會很是耗費系統資源。spa
2. find搜索的文件名必須是如出一轍的才能找到,要想進行模糊搜索,就要使用通配符,可以識別的通配符有三種,分別是: * ? [] (這三個通配符的功能和做用貌似在各類語言中都是通用的,詳細介紹請參考博文:http://my.oschina.net/woshixiaomayi/blog/507939)
.net
find命令的三個經常使用選項:blog
-iname 不區分大小寫查找 如: find /root -iname install.log
ci
-user 按照全部者搜索(不太經常使用) 如: find /root -user root 全部者是root的文件有哪些
資源
-nouser 搜索沒有全部者的文件(這個很實用) 如: find /root -nouser 解釋一下哈:通常來講,沒有全部者的文件就是垃圾文件,可是有兩個特殊狀況須要特別注意一下:
開發
1. 由內核產生的無全部者文件,是很重要的,不能刪除,例如:根目錄下的proc,sys兩個目錄中的文件。
字符串
2. 外來文件,如:U盤,光盤等從windows中拷貝而來的文件。window中不是沒有全部者這個概念,而是由於它忽略了這個概念。
find 按照文件修改時間查找
find /var/log -mtime +10 查找10天前修改的文件
選項: -atime 文件訪問時間
-ctime 改變文件屬性的時間
-mtime 修改文件內容的時間
時間段介紹: -10 10天之內修改的文件
10 第10天當天修改的文件
+10 10天之前修改的文件
過去的時間段知道怎麼表示了,那麼將來10天怎麼表示呢?你開玩笑的吧!知道將來的事,我就去買彩票了,誰還在這裏寫博客……
find 按照文件大小查找 find . -size 25k 查找當前目錄下文件大小等於25k的文件。
-25k 小於25k的文件
25k 等於25k的文件
+25k 大於25k的文件
注意:按照文件大小查找的時候有個要點,值得注意一下,否則會出錯:kb的時候必定要小寫,如25k;mb的時候必定要大寫,如:25M。唉,Linux的開發人員也是逗咱們玩……
經過i節點查找文件 find /root -inum 123456 其實,這個命令跟ls -i 命令有些互補,前者能夠經過i節點查找文件名,後者是經過文件名查看i節點。
find 命令還可使用邏輯判斷
find /etc -size +20k -a -size -50k
含義:查找/etc文件下大於20k而且小於50k的文件。邏輯與,兩個條件必須都要知足。
find /etc -size +20k -o -size -10k
含義:查找/etc文件下大於20k或者小於10k的文件。邏輯或,兩個條件知足其中一個便可。
下面說一個重要的知識點:
find /etc -size +20k -a -size -50k -exec ls -lh {}\
含義: 查找/etc文件下大於20k而且小於50k的文件,而且把查詢到的文件,以長格式和人性化文件大小顯示出來。
固定格式 -exec <命令> {}\ 這裏的命令,是對以前查詢出來的結果的操做。
再例如: find /etc -size +20k -a -size -50k -exec rm -rf {}\ 將查找出來的文件刪除,很方便吧,假如查找出來10000個文件,不會這個命令,就等着哭吧,可是有了這個命令就會so easy,老闆不再怕你刪不完文件。
grep命令
grep 【選項】 字符串 文件名 在文件當中匹配符合條件的字符串
選項: -i 忽略大小寫 -v 排除指定字符串(至關於反選)
如: grep ‘hello world’ abc.php 在abc.php中查找包含了hello world的行並返回。
那麼總結一下,find和grep的區別:
find命令:在系統當中搜索,符合條件的文件名。
grep命令:在文件當中搜索,符合條件的字符串。
學PHP的小螞蟻 博客 http://my.oschina.net/woshixiaomayi/blog