日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux中的文件搜索 locate,find,grep ,whereis和which命令的使用

發(fā)布時(shí)間:2024/4/11 linux 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux中的文件搜索 locate,find,grep ,whereis和which命令的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.文件搜索locate

Linux locate命令用于查找符合條件的文檔,它會(huì)去保存文檔和目錄名稱的數(shù)據(jù)庫(kù)mlocate內(nèi),查找合乎范本樣式條件的文檔或目錄。一般情況我們只需要輸入查找指定文件名字就可以。(locate只能搜索文件名

locate命令和find -name功能差不多,但是比f(wàn)ind搜索要快。因?yàn)閒ind命令查找的是具體目錄文件,而locate搜索的是一個(gè)數(shù)據(jù)庫(kù)/var/lib/mlocate/mlocate.db,這個(gè)數(shù)據(jù)庫(kù)中存有本地所有的文件信息,該數(shù)據(jù)庫(kù)是Linux自動(dòng)創(chuàng)建并每天自動(dòng)更新維護(hù)。相關(guān)的配置信息在/etx/updatedb.conf,定時(shí)任務(wù)信息在/etc/cron.daily/mlocate。

但對(duì)于剛建立的文件,使用該命令進(jìn)行查找將會(huì)搜索不到所創(chuàng)建的文件,如果想使剛創(chuàng)建的文件被locate命令搜索到,可以使用updatedb命令,更新mlocate數(shù)據(jù)庫(kù),之后在使用locate命令才能搜索到,否則要等到第二天才能搜索到該文件,該后臺(tái)數(shù)據(jù)庫(kù)默認(rèn)一天更新一次。

命令格式:

locate 參數(shù) 文件名

命令參數(shù):

  • -e 將排除在尋找的范圍之外。
  • -1 如果 是 1.則啟動(dòng)安全模式。在安全模式下,使用者不會(huì)看到權(quán)限無(wú)法看到 的檔案。這會(huì)始速度減慢,因?yàn)?locate 必須至實(shí)際的檔案系統(tǒng)中取得檔案的 權(quán)限資料。
  • -f 將特定的檔案系統(tǒng)排除在外,例如我們沒有到理要把 proc 檔案系統(tǒng)中的檔案 放在資料庫(kù)中。
  • -q 安靜模式,不會(huì)顯示任何錯(cuò)誤訊息。
  • -n 至多顯示 n個(gè)輸出。
  • -r 使用正規(guī)運(yùn)算式 做尋找的條件。
  • -o 指定資料庫(kù)存的名稱。
  • d 指定資料庫(kù)的路徑
  • -h 顯示輔助訊息
  • -V 顯示程式的版本訊息

舉例:

查找指定文件名字:locate 文件名

查找和pwd相關(guān)的所有文件,只顯示5條數(shù)目

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

忽略大小寫

locate -i 文件名

更新數(shù)據(jù)庫(kù)

updatedb

2.文件名搜索find命令

語(yǔ)法格式:

find path -option [ -print ] [ -exec -ok command ] {} \;

常用參數(shù):

  • -name filename #查找名為filename的文件
  • -perm #按執(zhí)行權(quán)限來(lái)查找
  • -user username #按文件屬主來(lái)查找
  • -group groupname #按組來(lái)查找
  • -mtime -n +n #按文件更改時(shí)間來(lái)查找文件,-n指n天以內(nèi),+n指n天以前
  • -atime -n +n #按文件訪問(wèn)時(shí)間來(lái)查找文件,-n指n天以內(nèi),+n指n天以前
  • -ctime -n +n #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以內(nèi),+n指n天以前
  • -nogroup #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在
  • -nouser #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存
  • -type b/d/c/p/l/f #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件
  • -size n[c] #查長(zhǎng)度為n塊[或n字節(jié)]的文件
  • -mount #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)
  • -follow #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件
  • -prune #忽略某個(gè)目錄

舉例:

查找某一個(gè)文件
一般使用find命令搜索文件名時(shí),可以使用通配符匹配(通配符是完全匹配)。

  • 表示匹配任意內(nèi)容;
  • ? 表示匹配任意一個(gè)字符;
  • [] 表示匹配任意一個(gè)中括號(hào)內(nèi)的字符;
find / -name 文件名

查找以cu 開頭的文件

find ./ -name "cu*"

查找文件不區(qū)分大小寫

find /root -iname 文件名

查找 目錄下文件類型是目錄 (f表示文件,d表示目錄,l表示軟鏈接)

find /home -type d

在 /etc 目錄下查找5 分鐘內(nèi)被修改過(guò)屬性的文件和目錄

find /etc -cmin -5

查大于512k的文件

find /home -size +512k

查小于512k的文件

find /home -size -512k

在根目錄下查找大于 100M 的文件(+n 表示大于,-n 表示小于,n 表示等于)

1 數(shù)據(jù)塊 == 512 字節(jié) 0.5KB,也就是1KB等于2數(shù)據(jù)塊 100MB == 102400KB204800數(shù)據(jù)塊

find / -size +204800

查硬連接數(shù)大于2的文件或目錄

find /home -links +2

查權(quán)限為700的文件或目錄

find /home -perm 0700

查找在系統(tǒng)中最后10分鐘訪問(wèn)的文件

find / -amin -10

查找在系統(tǒng)中最后48小時(shí)訪問(wèn)的文件

find / -atime -2

查找在系統(tǒng)中為空的文件或者文件夾

find / -empty

查找在系統(tǒng)中最后5分鐘里修改過(guò)的文件

find / -mmin -5

查找在系統(tǒng)中最后24小時(shí)里修改過(guò)的文件

find / -mtime -1

3.grep命令

Linux系統(tǒng)中g(shù)rep命令是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹 配的行打印出來(lái)。grep全稱是Global Regular Expression Print,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有用戶。

格式:
grep [選項(xiàng)] [文件]
常用參數(shù):
  • -n:顯示匹配行及 行號(hào)。
  • -i 表示忽略大小寫;
  • -v 表示排除指定字符串;
  • -b 表示將可執(zhí)行文件(binary)當(dāng)作文本文件(text)來(lái)搜索;
  • -c 表示僅顯示找到的行數(shù);
  • -v 表示反向選擇—僅列出沒有“關(guān)鍵詞”的行;
  • –color=auto :可以將找到的關(guān)鍵詞部分加上顏色的顯示。
  • -A n:顯示匹配到的字符串所在的行及其后n行,after
  • -B n:顯示匹配到的字符串所在的行及其前n行,before
  • -C n:顯示匹配到的字符串所在的行及其前后各n行,context

顯示匹配行及 行號(hào)

僅顯示找到的行數(shù)

顯示所有以d開頭的文件中包含 test的行

grep 'test' d*

在當(dāng)前目錄中,查找后綴有 file 字樣的文件中包含 test 字符串的文件

grep 'test' *file

以遞歸的方式查找符合條件的文件

例如,查找指定目錄/etc/acpi,及其子目錄(如果存在子目錄的話)下所有文件中包含字符串"update"的文件,并打印出該字符串所在行的內(nèi)容,

grep -r update /etc/acpi

顯示匹配到的字符串所在的行及其后n行

顯示匹配到的字符串所在的行及其前n行

4.which 命令

which和whereis命令都是Linux操作系統(tǒng)下查找可執(zhí)行文件路徑的命令。

which 命令的原理:在PATH變量指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果。也就是說(shuō),使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。

which 查找的可執(zhí)行文件,必須是要在 PATH 下的可執(zhí)行文件,而不能是沒有加入 PATH 的可執(zhí)行文件,即使他就是可執(zhí)行文件,但是沒有加入到系統(tǒng)搜索路徑,他仍然無(wú)法被 which 發(fā)現(xiàn)。

5.whereis命令

Linux whereis命令用于查找文件。

該指令會(huì)在特定目錄中查找符合條件的文件,可以用來(lái)查找二進(jìn)制(命令)、源文件、man文件。與which不同的是這條命令可以是通過(guò)文件索引數(shù)據(jù)庫(kù)而非PATH來(lái)查找的,所以查找的面比which要廣,一般文件的定位需使用locate命令。

常用參數(shù):
  • -b  只查找二進(jìn)制文件。
  • -B<目錄>  只在設(shè)置的目錄下查找二進(jìn)制文件。
  • -f  不顯示文件名前的路徑名稱。
  • -m  只查找說(shuō)明文件。
  • -M<目錄>  只在設(shè)置的目錄下查找說(shuō)明文件。
  • -s  只查找原始代碼文件。
  • -S<目錄>  只在設(shè)置的目錄下查找原始代碼文件。
  • -u  查找不包含指定類型的文件。
舉例:

使用指令"whereis"查看指令"bash"的位置,輸入如下命令:

注意:以上輸出信息從左至右分別為查詢的程序名bash路徑bash的man 手冊(cè)頁(yè)路徑。

顯示bash 命令的二進(jìn)制程序

顯示bash 命令的幫助文件

總結(jié)

以上是生活随笔為你收集整理的Linux中的文件搜索 locate,find,grep ,whereis和which命令的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。