文件搜索命令

語法:find [搜索范圍] [匹配條件]

功能:文件搜索

例1:$find /etc -name init

在目錄/etc中查找文件init,為精準搜索(-iname不區分文件名大小寫)

$find /etc -name *init*(利用通配符*來實現模糊搜索,文件名包含init)

$find /etc -name *init(利用通配符*來實現模糊搜索,文件名尾部為init)

$find /etc -name init???(利用通配符*來實現模糊搜索,文件名頭部為init,尾部為3個字符)

例2:$find / -size +204800

在根目錄下查找大于100MB的文件(+n大于;-n小于;n等于)

ps:linux中單位為數據塊,一個數據塊為512字節,也就是0.5KB

100MB=102400KB=204800個數據塊

例3:$find /home -user shenchao

在根目錄下查找所有者為沈超的文件(-group根據所屬組找)

例3:$find /etc -cmin -5

在/etc下查找5分鐘內被修改過屬性的文件及目錄

選項:-cmin 文件屬性change

? ? ? ? ? ?-mmin文件內容modify

? ? ? ? ? ?-amin訪問時間access

例4:$find /etc -size +163840 -a -size -204800

在/etc下查找大于80MB小于100MB的文件

ps:-a ?兩個條件同時滿足;-o兩個條件滿足任意一個(相當于or)

例5:$find /etc -name init* -a -type f

查找在./etc目錄下名字頭部為init開頭的文件

-type 的選項有 ?f ?代表文件;d ?代表目錄; ?l代表軟鏈接文件


例6:$find /etc -name inittab -exec ls -l {} \;

在/etc目錄下查找名字為inittab的文件或目錄并且顯示其詳細信息

$find /etc -name inittab -a -type f -exec ls -l {} \;

在/etc目錄下查找名字為inittab的文件并且顯示其詳細信息


-exec與-ok類似,不同點在于-ok命令會對每次要執行的操作進行再次確認。

例7:針對奇怪的文件名或要刪除硬鏈接

$find . -inum 31531 -exec rm ?{} \;

在當前目錄下查找inode號為31531及刪除操作


語法:locate 文件名

功能:在文件資料庫中查找文件,locate命令其實是“find -name”的另一種寫法,但是要比后者快得多,資料庫每天更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用$updatedb命令,手動更新數據庫。但在/tmp臨時目錄的文件不在資料庫之內。

例:$locate inittab

$ locate /m

搜索根目錄下,所有以m開頭的文件

? ? ?加-i參數,會忽略文件名大小寫

例:$ locate -i /m

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


語法:which ?命令

功能:搜索命令所在目錄及別名信息

例:$ which grep


語法:whereis ?命令

功能:查看命令所在目錄及幫助文檔路徑,與which類似

例:$ whereis grep


語法:grep -iv [指定字符串] [文件名]

? ? ? ? ? ? ? ? ? ?-i 不區分大小寫

? ? ? ? ? ? ? ? ? -n 加行號

? ? ? ? ? ? ? ? ? -v 排除包含指定字符串的行

功能:在文件中搜索字符串匹配的行并輸出

例:$grep -v ^# /etc/inittab

在文件中去除注釋行

ps:#前面的^表示以#開頭的行去掉

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容