Linux文件操作之文件查詢與搜索命令詳解
文件的查詢和搜索也是最常用的操作,在嵌入式 Linux 開發(fā)中常常需要在 Linux 源碼文件中查詢某個文件是否存在,或者搜索哪些文件都調(diào)用了某個函數(shù)等等。本節(jié)我們就講解兩個最常用的文件查詢和搜索命令:find 和 grep。
1、命令 find
find 命令用于在目錄結(jié)構(gòu)中查找文件,其命令格式如下:
- find [路徑] [參數(shù)] [關(guān)鍵字]
路徑是要查找的目錄路徑,如果不寫的話表示在當(dāng)前目錄下查找,關(guān)鍵字是文件名的一部分,主要參數(shù)如下:
-name
-depth 從指定目錄下的最深層的子目錄開始查找。
-gid<群組識別碼> 查找符合指定的群組識別碼的文件或目錄。
-group<群組名稱> 查找符合指定的群組名稱的文件或目錄。
-size<文件大小> 查找符合指定文件大小的文件。
-type<文件類型> 查找符合指定文件類型的文件。
-user<擁有者名稱> 查找符合指定的擁有者名稱的文件或目錄。
find 命令的參數(shù)有很多,常用的就這些,關(guān)于其它的參數(shù)大家可以自行上網(wǎng)查找,我們來看一下如何使用find 命令進(jìn)行文件搜索,我們搜索目錄/etc 中以“vim”開頭的文件為例,操作如圖所示:

find命令操作
從圖中可以看出,在目錄/etc 下,包含以“vim*”開頭的文件有/etc/vim、/etc/vim/vimrc等等,就不一一列出了。
2、命令 grep
find 命令用于在目錄中搜索文件,我們有時候需要在文件中搜索一串關(guān)鍵字,grep 就是完成這個功能的,grep 命令用于查找包含指定關(guān)鍵字的文件,如果發(fā)現(xiàn)某個文件的內(nèi)容包含所指定的關(guān)鍵字,grep 命令就會把包含指定關(guān)鍵字的這一行標(biāo)記出來,grep 命令格式如下:
- grep [參數(shù)] 關(guān)鍵字 文件列表
grep 命令一次只能查一個關(guān)鍵字,主要參數(shù)如下:
-b 在顯示符合關(guān)鍵字的那一列前,標(biāo)記處該列第 1 個字符的位編號。
-c 計算符合關(guān)鍵字的列數(shù)。
-d<進(jìn)行動作> 當(dāng)指定要查找的是目錄而非文件時,必須使用此參數(shù)!否則 grep 指令將回報信息并停止搜索。
-i 忽略字符大小寫。
-v 反轉(zhuǎn)查找,只顯示不匹配的行。
-r 在指定目錄中遞歸查找。
比如我們在目錄/usr 下遞歸查找包含字符“Ubuntu”的文件,操作如圖所示:

命令grep演示
3、文件類型查詢命令
在用戶根目錄下使用命令“ls-l”來查看用戶根目錄下所有文件的詳細(xì)信息,如圖所示:

文件詳細(xì)信息
在圖中,每個文件的詳細(xì)信息占一行,每行最前面都是一個符號就標(biāo)記了當(dāng)前文件類型,比如test1 的第一個字符是“d”,test1.tar.bz2 文件第一個字符是“-”。這些字符表示的文件類型如下:
- 普通文件,一些應(yīng)用程序創(chuàng)建的,比如文檔、圖片、音樂等等。
d 目錄文件。
c 字符設(shè)備文件,Linux 驅(qū)動里面的字符設(shè)備驅(qū)動,比如串口設(shè)備,音頻設(shè)備等。
b 塊設(shè)備文件,存儲設(shè)備驅(qū)動,比如硬盤,U 盤等。
l 符號連接文件,相當(dāng)于Windwos 下的快捷方式。
s 套接字文件。
p 管道文件,主要指 FIFO 文件。
我們后面學(xué)習(xí)Linux 驅(qū)動開發(fā)的時候基本是在和字符設(shè)備文件和塊設(shè)備文件打交道。