除了在一個目錄結構下查找文件這種基本的操作,你還可以用find命令實現一些實用的操作,使你的命令行之旅更加簡易。 本文將介紹15種無論是於新手還是老鳥都非常有用的Linux find命令。
首先,在你的home目錄下面創建下面的空文件,來測試下面的find命令示例。
|
1. 用文件名查找文件這是find命令的一個基本用法。下面的例子展示了用MyCProgram.c作爲查找名在當前目錄及其子目錄中查找文件的方法。
2.用文件名查找文件,忽略大小寫這是find命令的一個基本用法。下面的例子展示了用MyCProgram.c作爲查找名在當前目錄及其子目錄中查找文件的方法,忽略了大小寫。
3. 使用mindepth和maxdepth限定搜索指定目錄的深度在root目錄及其子目錄下查找passwd文件。
在root目錄及其1層深的子目錄中查找passwd. (例如root — level 1, and one sub-directory — level 2)
在root目錄下及其最大兩層深度的子目錄中查找passwd文件. (例如 root — level 1, and two sub-directories — level 2 and 3 )
在第二層子目錄和第四層子目錄之間查找passwd文件。
|
4. 在find命令查找到的文件上執行命令下面的例子展示了find命令來計算所有不區分大小寫的文件名爲“MyCProgram.c”的文件的MD5驗證和。{}將會被當前文件名取代。
5. 相反匹配顯示所有的名字不是MyCProgram.c的文件或者目錄。由於maxdepth是1,所以只會顯示當前目錄下的文件和目錄。
|
6. 使用inode編號查找文件任何一個文件都有一個獨一無二的inode編號,藉此我們可以區分文件。創建兩個名字相似的文件,例如一個有空格結尾,一個沒有。
從ls的輸出不能區分哪個文件有空格結尾。使用選項-i,可以看到文件的inode編號,藉此可以區分這兩個文件。
你可以如下面所示在find命令中指定inode編號。在此,find命令用inode編號重命名了一個文件。
找到每一個文件的inode編號。
如下所示: 使用inode編號來刪除那些具有特殊符號的文件名。
|
7. 根據文件權限查找文件下面的操作時合理的:
此例中,假設目錄包含以下文件。注意這些文件的權限不同。
找到具有組讀權限的文件。使用下面的命令來找到當前目錄下對同組用戶具有讀權限的文件,忽略該文件的其他權限。
找到對組用戶具有隻讀權限的文件。
找到對組用戶具有隻讀權限的文件(使用八進制權限形式)。
|
8. 找到home目錄及子目錄下所有的空文件(0字節文件)下面命令的輸出文件絕大多數都是鎖定文件盒其他程序創建的place hoders
只列出你home目錄裏的空文件。
9. 查找5個最大的文件下面的命令列出當前目錄及子目錄下的5個最大的文件。這會需要一點時間,取決於命令需要處理的文件數量。
10. 查找5個最小的文件方法同查找5個最大的文件類似,區別只是sort的順序是降序。
上面的命令中,很可能你看到的只是空文件(0字節文件)。如此,你可以使用下面的命令列出最小的文件,而不是0字節文件。
|
11. 使用-type查找指定文件類型的文件只查找socket文件
查找所有的目錄
查找所有的一般文件
查找所有的隱藏文件
查找所有的隱藏目錄
12. 通過和其他文件比較修改時間查找文件顯示在指定文件之後做出修改的文件。下面的find命令將顯示所有的在ordinary_file之後創建修改的文件。
13. 通過文件大小查找文件使用-size選項可以通過文件大小查找文件。 查找比指定文件大的文件
查找比指定文件小的文件
查找符合給定大小的文件
注意: – 指比給定尺寸小,+ 指比給定尺寸大。沒有符號代表和給定尺寸完全一樣大。 14. 給常用find操作取別名若你發現有些東西很有用,你可以給他取別名。並且在任何你希望的地方執行。 常用的刪除a.out文件。
刪除c程序產生的core文件。
|
15. 用find命令刪除大型打包文件下面的命令刪除大於100M的*.zip文件。
用別名rm100m刪除所有大雨100M的*.tar文件。使用同樣的思想可以創建rm1g,rm2g,rm5g的一類別名來刪除所有大於1G,2G,5G的文件。
Find命令示例(第二部分) 若你喜歡這篇關於find命令的Mommy文章,別忘了看看第二部分的關於find命令的Daddy文章。爹地,我找到了!, 15個極好的Linux find命令示例 |
注:本文轉載自:http://www.oschina.net/translate/15-practical-linux-find-command-examples