[Linux]Linux系統查找文件命令總結


1. find

find是最常見和最強大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

  $ find <指定目錄> <指定條件> <指定動作>

  - <指定目錄>: 所要搜索的目錄及其所有子目錄。默認為當前目錄。

  - <指定條件>: 所要搜索的文件的特征。

  - <指定動作>: 對搜索結果進行特定的處理。

如果什么參數也不加,find默認搜索當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有文件),將它們全都顯示在屏幕上。

find的使用實例:

  $ find . -name "my*"

搜索當前目錄(含子目錄,以下同)中,所有文件名以my開頭的文件。

  $ find . -name "my*" -ls

搜索當前目錄中,所有文件名以my開頭的文件,並顯示它們的詳細信息。

  $ find . -type f -mmin -10

搜索當前目錄中,所有過去10分鍾中更新過的普通文件。如果不加-type f參數,則搜索普通文件+特殊文件+目錄。


 

2. locate

locate命令其實是“find -name”的另一種寫法,但是要比后者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。

locate命令的使用實例:


locate例子:

$ locate inittab
/usr/lib/upstart/migrate-inittab.pl
/usr/share/terminfo/a/ansi+inittabs

 

  $ locate /etc/sh

搜索etc目錄下所有以sh開頭的文件。

  $ locate ~/m

搜索用戶主目錄下,所有以m開頭的文件。

  $ locate -i ~/m

搜索用戶主目錄下,所有以m開頭的文件,並且忽略大小寫。


3. whereis

whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。

whereis命令的使用實例:

  $ whereis grep

4.grep家族


最好的方法也就是 grep -r 'keyword' * 來定位文件名 然后通過文件名查找位置
RE--regular expression; g: global; p: print
出了上面10種元字符集,grep還支持下面的RE
\w 字母或者數字
\W 非單詞字符(標點符號)
+ 重復一個或者多個前面的字符
| 或 love(a:b)表示lovea或者lobeb
?單個字符
grep返回狀態值($?) 0表示成功,1表示失敗,2表示沒有找到文件
rgrep遞歸訪問目錄樹
---------------------------------------------------------------------------
ls -l |grep ^d 顯示目錄
grep -n -v -# -A# -B#
-i 不區分大小寫
-n 顯示匹配行和行號
-v只顯示不匹配行
-#顯示匹配行上下#行
-A#匹配行后面打印#行
-B#匹配行前面打印#行
-c 只輸出匹配行的行數
-h 查詢多文件的時候不顯示匹配的文件名字
-l 查詢多文件只顯示匹配的文件名
-s 不顯示錯誤信息
grep與正則表達式同用
grep "^[^abc]" *.f 提取行首不是abc的行
grep "[0-9]\{3\}[8]" *.f 提取類似xxx8的行,x表示任意數字
grep "a\{2\}" *.f 顯示a至少出現兩次的行,注意grep是以行處理單位的
grep -n "^$" file 列出空行的行號
-E參數,可以使用"與"和"或"模式
grep -E "abc | def" *.f 顯示包含abc或者def的行
ex:
ls -l | grep "^$" 顯示目錄
ls -l | grep "^d" 顯示文件
ls -l | grep "^d..x..x..x" 顯示特定權限的目錄
ps aux | grep "httpd" |grep -v "grep"


5. type

type命令其實不能算查找命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進制文件提供的。如果一個命令是外部命令,那么使用-p參數,會顯示該命令的路徑,相當於which命令。

type命令的使用實例:

  $ type cd

系統會提示,cd是shell的自帶命令(build-in)。

  $ type grep

系統會提示,grep是一個外部命令,並顯示該命令的路徑。

  $ type -p grep

加上-p參數后,就相當於which命令。
————————————————
版權聲明:本文為CSDN博主「zhujinghao09」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhujinghao_09/article/details/8481326


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM