linux查詢資料夾下是否有某檔案

時間 2022-01-03 19:25:03

1樓:為學導航

查詢目錄下的所有檔案中是否含有某個字串

查詢目錄下的所有檔案中是否含有某個字串

find .|xargs grep -ri "ibm"

查詢目錄下的所有檔案中是否含有某個字串,並且只列印出檔名

find .|xargs grep -ri "ibm" -l

1.正規表示式

(1)正規表示式一般用來描述文字模式的特殊用法,由普通字元(例如字元a-z)以及特殊字元(稱為元字元,如/、*、?等)組成。

(2)基本元字符集及其含義

^ :只匹配行首。 如^a 匹配以a開頭的行abc,a2e,a12,aaa,......

$ :只匹配行尾。 如^a 匹配以a結尾的行bca,12a,aaa,.......

* :匹配0個或多個此單字元。 如(a)* 匹配 空,a,aa,aaa,....

:只匹配內字元。可以是一個單字元,也可以是字元序列,用","將裡面要匹配的不同字串分開。也可以使用-來表示內字元序列的範圍,如[1-5]表示[12345]

\ :只用來遮蔽一個元字元的特殊含義。 如\*,\',\",\|,\+,\^,\. 等

.:(點)只匹配任意單字元。

pattern\:只用來匹配前面pattern出現的次數.n為次數。如a\匹配aa.

pattern\:含義同上,但次數最少為n.如a\匹配aa,aaa,aaaa,.....

pattern\:含義同上,但次數在n和m之間。如a\匹配aa,aaa,aaaa三個

(3)舉例說明:

^$ :匹配空行

^.$ :匹配包含一個字元的行

\*\.pas :匹配以*.pas結尾的所有字元或檔案

[0123456789]或[0-9] :假定要匹配任意一個數字

[a-z] :任意小寫字母

[a-za-z] :任意大小寫字母

[s,s] :匹配大小寫s

[0-9]\\.[0-9]\\.[0-9]\\.

[0-9]\ :匹配ip地址 [0-9]\三個0-9組成的字串;\. :

匹配點(注意這裡點是特殊的字元,所以要用"\"來遮蔽其含義)

2.find介紹

(1)查詢具有某些特徵檔案的命令,可遍歷當前目錄甚至於整個檔案系統來檢視某些檔案或目錄,其遍歷大的檔案系統時一般放在後臺執行。

(2)find命令的一般形式

find pathname -options [-print -exec -ok]

-pathname :find命令所查詢的目錄路徑。如用"."來表示當前的目錄,用/來表示系統根目錄

-print :find命令將匹配的檔案輸出到標準輸出

-exec: find命令對匹配的檔案執行該引數所給出的shell命令,相應的命令形式為

'command'{} \; (注意{}和\之間的空格)

-ok 和 -exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。

options有如下幾種:

-name :按照檔名查詢檔案

-perm :按照檔案許可權來查詢檔案

-user :按照檔案屬主來查詢檔案

-group :按照檔案所屬的組來查詢檔案

-mtime -n +n 按照檔案的更改時間來查詢檔案,-n表示檔案更改時間距現在n天以內,+n表示檔案更改時間距現在n天以前。find命令還有-atime 和-ctime選項,但它們都和-mtime選項相似。

-size n[c]查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。

-nogroup 查詢無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在

-newer file1 !file2查詢更改時間比檔案file1新但比檔案file2舊的檔案

-depth 先查詢指定目錄有無匹配檔案,若無則再在子目錄中查詢

2樓:黑馬程式設計師

# find -type f -name "*.c" | xargs grep ""

是你要找的資料夾;如果是當前資料夾可以省略-type f 說明,只找檔案

-name "*.c"  表示只找c語言寫的**,從而避免去查binary;也可以不寫,表示找所有檔案

是你要找的某個字串

find /your/path -type f -print | xargs grep masquerade

grep -f masquerade -r /path

linux如何用命令檢視某資料夾下是否有指定的檔案?

3樓:匿名使用者

ls /usr/local 此命令會列印出/usr/local資料夾下的檔案,你就可以看有沒有這個檔案了!

4樓:笨自己

wttping:

ls /usr/local/abc

如果這個檔案存在,會顯示出來,如果不存在,提示此檔案不存在。

5樓:解決問題

ls -al /usr/local 看看

如果這個檔案存在,會顯示出來,如果不存在,提示此檔案不存在!!

6樓:

ls /etc/local | grep abc

linux查詢目錄下的所有檔案中是否含有某個字串

7樓:

grep   -rn   "要查詢的字串"    *-r 是遞迴查詢

-n 是顯示行號

* : 表示當前目錄所有檔案,也可以是某個檔名。

grep命令的常用格式為:grep  [選項]  」模式「  [檔案]。

模式部分:

1、直接輸入要匹配的字串,這個可以用fgrep(fast grep)代替來提高查詢速度,比如我要匹配一下hello.c檔案中printf的個數:fgrep  -c  "printf"  hello.

c。2、使用基本正規表示式。

8樓:莫查名

用grep遍歷目標目錄下的所有檔案

比如:你的字元是 「some_code」 ,資料夾名字是  your_dir

grep -r   "some_code"  your_dir如果你不需要顯示內容,只需要含有某個字元的檔案:

grep -lr   "some_code"  your_dir附錄:grep -r 和 -l 引數

-r, -r, --recursive

遞迴地讀每一目錄下的所有檔案。這樣做和 -d recurse 選項等價。

-l, --files-with-matches禁止通常的輸出;作為替代,列印出每個在通常情況下會產生輸出的輸入檔案的名字。對每個檔案的掃描在遇到第一個匹配的時候就會停止。

ps:如果目錄下有二進位制檔案,也可能匹配到。

9樓:

在當前目錄下所有檔案查詢含有main字串的檔案:

grep -r . -e main

解釋:-r recursive,

-e pattern.

如何查詢linux目錄下的所有檔案中是否含有某個字串?

10樓:匿名使用者

查詢目錄下的所有檔案中是否含有某個字串使用:find .|xargs grep -ri "ibm"。正規表示式一般用來描述文字模式的特殊用法,由普通字元以及特殊字元組成。

在linux下查詢某目錄下所有檔案包含某字串的命令:

1、從檔案內容查詢匹配指定字串的行: $ grep "被查詢的字串" 檔名 。

2、從檔案內容查詢與正規表示式匹配的行: $ grep –e 「正規表示式」 檔名 。

3、查詢時不區分大小寫: $ grep –i "被查詢的字串" 檔名 。

4、查詢匹配的行數: $ grep -c "被查詢的字串" 檔名 。

5、從檔案內容查詢不匹配指定字串的行: $ grep –v "被查詢的字串" 檔名 。

6、從根目錄開始查詢所有副檔名為.txt的文字檔案,並找出包含"phpzixue.cn"的行

find . -type f -name "*.txt" | xargs grep "phpzixue.

cn"表示當前目錄 -type 表示型別 f 表示普通檔案 xargs 表示遞迴查詢子目錄 目標字元可帶**等符號 可不帶引號。

linux中在當前目錄下查詢某個檔案。 20

11樓:一棵無所不知的小白菜

1、開啟shell連線工具,連線上伺服器,pwd檢視當前目錄,一般進來預設在主目錄下。

2、通過命令:cd /切換到主目錄下,然後pwd檢視當前目錄,並用ls可以檢視當前目錄下的檔案及目錄。

3、假如要找一個nginx配置檔案nginx.conf,那麼可以通過find命令查詢:find . -name 'nginx.conf'。

4、假如不知道檔案的具體名字只是模糊記得幾個關鍵的單詞,那麼就可以通過模糊匹配去搜尋:find 目錄 -name '*nginx*' 查詢即可。

12樓:匿名使用者

首先,查詢檔案不能用grep,grep命令用於在一個或多個檔案中查詢關鍵字(可以是字串,也可以是正規表示式),而不是查詢檔案。

其次,linux下查詢檔案可以用whereis、locate或者find命令。如果是快速搜尋檔案,最好是用whereis或者locate命令,它們的查詢速度要比find命令快很多,這是因為在linux系統中有個資料庫,記錄了系統內的所有檔案,而whereis和locate命令就是在這個資料庫中查詢,並沒有實際查詢硬碟,而資料庫查詢往往是非常快的;而find命令是直接查詢硬碟,如果硬碟檔案比較多,就比較費時間。

注意一點:whereis和locate命令的資料庫是一天更新一次,所以有時候會找到已經刪除的檔案,還會有找不到最新剛剛建立檔案的情況,當明明記得有卻找不到時,就用find命令來查詢。

最後,根據你的問題,查詢當前目錄檔案,可以在當前目錄下執行find命令的-name引數。

find用法:

find 要查詢的路徑 引數

-name引數:指定要查詢的檔名

-user引數:指定要查詢的檔案所屬使用者

-type引數指定查詢檔案的型別,分別有d目錄、l連線檔案、s socket檔案等

13樓:匿名使用者

在 linux 中查詢檔案有兩種方法。一種是使用 find 命令,另外一種是使用 locate 命令。

1、find 命令

使用 linux find 命令可以用不同的搜尋標準如名字、型別、所屬人、大小等來搜尋目錄樹。基本語法如下:

# find path expression search-term

下面是使用 find 命令根據檔名來查詢特定檔案的一個例子:

# find -name test.file

命令會搜尋整個目錄樹來查詢名為 test.file 的檔案,並且會提供其存放位置。你可以使用你 linux 上一個存在的檔名來嘗試一下。

# find /var -name test.file

# man find

2、locate 命令

要在linux中使用locate命令,首先需要安裝它。

如果你正在使用 ubuntu,執行下面的命令來安裝 locate:

# apt-get update # apt-get install mlocate

如果你使用的是 centos ,執行下面的命令來安裝 locate:

# yum install mlocate

locate 是一種比 find 更快的方式,因為它在資料庫中查詢檔案。要更新搜尋資料庫,執行下面的命令:

# updatedb

使用 locate 查詢檔案的語法:

# locate test.file

# man locate

Linux命令刪除資料夾下的檔案 保留資料夾

rm rf var woll cion lib 還有一種辦法是查詢到所有lib資料夾,然後按此列表刪除 ls r var woll cion grep lib sed e s g xargs rm rf 請謹慎使用!你可以這麼寫 find var woll cion path var woll ci...

我想用vb監控某個資料夾下的檔案是否有變化,如果出現了變

若只是監視資料夾下的 檔案數目 名稱是否有改變的話 很容易。若要檢測資料夾下檔案內容是否被改動,就需要檢測所有檔案的修改日期了。先來個檢測資料夾下名稱 數量的吧。在vb中要實現查詢檔案功能,我們可以利用vb的dir函式進行遞迴來實現。每次使用dir函式後,比較是否有要查詢的檔案,再檢查是否有子目錄,...

linux查詢檔案是怎麼產生的,怎麼在Linux中查詢某個檔案?

linux下沒有辦法檢視某個檔案 絕對的 建立時間,只有檔案的最後一次改變的時間,用下面的命令可以查詢 home下最近兩天修改過的檔案 find home type f mtime 2如果要把這些檔案也刪掉,那麼可以 find home type f mtime 2 exec rm 怎麼在linux...