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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux的文件搜索命令,Linux文件搜索命令find的用法 | 术与道的分享

發布時間:2023/12/10 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux的文件搜索命令,Linux文件搜索命令find的用法 | 术与道的分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不管在Windows還是Linux中,最重要的問題不是說你能搜索到這個文件,而是最好少用搜索,應該是你在整個服務器的規劃里面,把所以的文件目錄規劃的很好。就像如果你在家里找衣服,如果不是你亂扔,就不可能花費太長的時間。因為搜索會占用大量的系統資源,但是有一些操作比如被他人非法修改的文件,的確find命令是一個很好的選擇。

文件搜索命令find的一般格式

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

path:find命令所要查找的目錄路徑,比如/root,表示在root目錄下搜索匹配。

-print:find命令將匹配的文件輸出到標準輸出。

-exec:find命令對匹配的文件執行該參數所給出的shell命令。

-ok:和exec作用相同,只不過以一種更為安全的模式來執行該參數給出的shell命令,在執行每一個命令執行都會提示是否確認執行。

1

2

3

4

5

6

7

8

9

findpath-option[-print][-exec-okcommand]{}\;

path:find命令所要查找的目錄路徑,比如/root,表示在root目錄下搜索匹配。

-print:find命令將匹配的文件輸出到標準輸出。

-exec:find命令對匹配的文件執行該參數所給出的shell命令。

-ok:和exec作用相同,只不過以一種更為安全的模式來執行該參數給出的shell命令,在執行每一個命令執行都會提示是否確認執行。

find一般搜索使用實例

在目錄/etc中查找文件init

find /etc -name init

1

2

3

在目錄/etc中查找文件init

find/etc-nameinit

大家可能會認為只要文件名包含init,比如initab,123init都會被匹配到,linux不同于windows,linux中的搜索就是精準搜索,也就是說,只有文件名為init的文件才可以搜索到。那么如果linux下我想搜索文件名包含init的文件怎么辦呢?

find /etc -name *init*

只要文件名里面包含init都會被例舉出來

* :表示匹配一個字符串

1

2

3

4

5

find/etc-name *init*

只要文件名里面包含init都會被例舉出來

*:表示匹配一個字符串

find /etc -name init*

表示在etc目錄中匹配文件名以init開頭的文件

1

2

3

find/etc-nameinit*

表示在etc目錄中匹配文件名以init開頭的文件

find /etc -name init???

在etc目錄下搜索文件名以init開頭后面跟3個字符的文件

?:匹配單個字符

1

2

3

4

5

find/etc-nameinit???

在etc目錄下搜索文件名以init開頭后面跟3個字符的文件

?:匹配單個字符

iname:表示不區分大小寫

1

iname:表示不區分大小寫

在根目錄下查找大于100MB的文件

find / +size +204800

1

2

3

在根目錄下查找大于100MB的文件

find/+size+204800

在linux當中,一個數據塊是512字節,即0.5K,文件的大小以數據塊來計算,因此100MB=102400KB=204800。數據塊是linux文件中存儲的最小單位。+n:大于,-n:小于,n:等于。

普通用戶家目錄下查找所有者為wenyang的文件

find / -user wenyang

1

2

3

普通用戶家目錄下查找所有者為wenyang的文件

find/-userwenyang

user表示根據所有者查找,當然,我們也可以使用-group根據所屬組來搜索。

通過時間屬性來搜索

-amin:訪問時間 access

-cmin:文件屬性 change

-mmin:文件內容 modify

上述三種以分鐘為單位

1

2

3

4

5

6

7

-amin:訪問時間access

-cmin:文件屬性change

-mmin:文件內容modify

上述三種以分鐘為單位

-atime:訪問時間 access

-ctime:文件屬性 change

-mtime:文件內容 modify

上述三種以天為單位

1

2

3

4

5

6

7

-atime:訪問時間access

-ctime:文件屬性change

-mtime:文件內容modify

上述三種以天為單位

我習慣性把上述的3個時間屬性稱為ACM,在這里我附上前面一篇關于ACM的博文方便大家記憶:https://www.1024do.com/?p=2318。

在home目錄下查找10分鐘內被修改過屬性的文件和目錄

find /home -cmin -10

1

2

3

在home目錄下查找10分鐘內被修改過屬性的文件和目錄

find/home-cmin-10

-10表示10分鐘之內,+10代表的就是10分鐘以前。其他時間屬性的操作與此一致。

find中的多條件命令

在/home下尋找大于2MB小于4MB的文件

find /home -size +2048 -a -size -8192

1

2

3

在/home下尋找大于2MB小于4MB的文件

find/home-size+2048-a-size-8192

-a在這里表示兩個條件同時滿足,與之對應的還有-o,表示兩個條件滿足任意一個即可。

在/etc下查找inittab文件并顯示其詳細信息

find /etc -name inittab -exec ls -l {} \;

1

2

3

在/etc下查找inittab文件并顯示其詳細信息

find/etc-nameinittab-execls-l{}\;

-exec在這里起一個鏈接作用,與-ok的區別在于,它不需要確認,而-ok會進行安全檢查。ls -l表示顯示文件信息,{}表示對find查詢的結果替換,\表示轉義符,;表示結束。

通過文件類型搜索

-type 根據文件類型查找

f:文件

d:目錄

l:軟鏈接文件

1

2

3

4

-type根據文件類型查找

f:文件

d:目錄

l:軟鏈接文件

在etc目錄下尋找以init開頭的并且是文件類型的文件

find /etc -name init* -a -type f

1

2

3

在etc目錄下尋找以init開頭的并且是文件類型的文件

find/etc-nameinit*-a-typef

在etc目錄下尋找以init開頭的目錄

find /etc -name init* -a -type d

1

2

3

在etc目錄下尋找以init開頭的目錄

find/etc-nameinit*-a-typed

在etc目錄下尋找以init開頭的軟鏈接

find /etc -name init* -a -type l

1

2

3

在etc目錄下尋找以init開頭的軟鏈接

find/etc-nameinit*-a-typel

根據i節點查找

即inum,每個文件或目錄都有一個i節點,這里不詳細描述,只簡單介紹一下其用法,具體情況大家可以自行百度,我們可以通過尋找一個文件、目錄的inum節點而對其進行其他操作。

搜索home目錄下刪除i節點為127的目錄

find /home -inum 127 -exec rm -rf {} \;

1

2

3

搜索home目錄下刪除i節點為127的目錄

find/home-inum127-execrm-rf{}\;

從圖中可以看出,通過查看文件或目錄的i節點,就可以對其進行附加的操作。

總結:find命令可以精準的搜索到你的預期要求,當其他命令不能搜索到某個文件或目錄時,find確實給我們帶來了很多便捷,但是,find命令在搜索的時候是從硬盤進行遍歷的,因此會非常耗費硬盤的資源,這樣就會使搜索時間提高,隨之而來的就是效率的低下,所以說,find是一把雙刃劍,帶給我們便捷的途中,也難免讓我們耗費更多的資源與時間。

總結

以上是生活随笔為你收集整理的linux的文件搜索命令,Linux文件搜索命令find的用法 | 术与道的分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。