Linux之搜索查找命令

一、find命令

find命令可以根據給定的路徑和表達式查找的文件或目錄。find參數選項很多,並且支持正則,功能強大。和管道結合使用可以實現複雜的功能,是系統管理者和普通用戶必須掌握的命令。

find如不加任何參數,表示查找當前路徑下的所有文件和目錄,如果服務器負載比較高儘量不要在高峯期使用find命令,find命令模糊搜索還是比較消耗系統資源的。

語法格式:find [參數] [路徑] [查找和搜索範圍]

常用參數

參數 作用
-name 按名稱查找
-size 按大小查找
-user 按屬性查找
-type 按類型查找
-iname 忽略大小寫

參考實例

使用-name參數查看/etc目錄下面所有的.conf結尾的配置文件:

[root ~]# find /etc -name "*.conf

使用-size參數查看/etc目錄下面大於1M的文件:

[root ~]# find /etc -size +1M

列出當前目錄及子目錄下所有文件和文件夾:

[root ~]# find .

在/var/log目錄下忽略大小寫查找以.log結尾的文件名:

[root ~]# find /var/log -iname "*.log"

二、locate命令

locate命令其實是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb,值得注意的是:版本不同,會有所不同。有的版本位置是 /var/lib/mlocate/mlocatedb ,還有的是/var/lib/slocate/slocate.db ,這個數據庫中含有本地所有文件信息。

Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。爲了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。

**語法格式:**locate [參數] [文件]

參考實例

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

[root ~]# locate /etc/sh
 /etc/shadow
 /etc/shadow-
 /etc/shells

搜索/etc目錄下以k開頭的文件:

[root ~]# locate /etc/k
 /etc/kdump.conf
 /etc/kernel
 /etc/krb5.conf
 /etc/krb5.conf.d
 /etc/ksmtuned.conf
 /etc/kernel/postinst.d
 /etc/kernel/postinst.d/51-dracut-rescue-postinst.sh

查找和pwd相關的所有文件:

[root ~]# locate pwd
 /boot/extlinux/pwd.c32
 /etc/.pwd.lock
 /usr/bin/pwd
 /usr/bin/pwdx
 /usr/include/pwd.h

三、grep命令和 管道符號 |

grep 過濾查找 ,管道符“|”,表示將前一個命令的處理結果輸出傳遞給後面的命令處理。

基本語法

grep [選項] 查找內容 源文件

常用選項

參數 作用
-n 顯示匹配行及行號
-i 忽略字母大小寫

實例:

請在hello.txt文件中,查找"yes"所在行,並且顯示行號(不區分大小寫)

cat hello.txt | grep -ni yes
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章