亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

Linux中find命令的用法匯總

2024-09-05 23:03:34
字體:
來源:轉載
供稿:網友

Linux系統中的 find 命令在查找文件時非常有用而且方便。它可以根據不同的條件來查找文件,例如權限、擁有者、修改日期/時間、文件大小等等。在這篇文章中,我們將學習如何使用 find 命令以及它所提供的選項來查找文件。

在絕大多數Linux發行版中,你都可以直接使用 find 命令而無需進行任何安裝操作。如果你想在linux系統的命令行中變得特別高效,那么 find 是你必須掌握的命令之一。

find 命令的基本語法如下:

$ find [path] [option] [expression]

一、基本用法

1. 列出當前目錄和子目錄下的所有文件

這個命令會列出當前目錄以及子目錄下的所有文件。

$ find../abc.txt./subdir./subdir/how.php./cool.php

該命令與以下命令效果相同

$ find .$ find . -print

2. 查找特殊的目錄或路徑

下面的命令會查找當前目錄下 test 文件夾中的文件,默認列出所有文件。

$ find ./test./test./test/abc.txt./test/subdir./test/subdir/how.php./test/cool.php

下面的命令用于查找指定名稱的文件。

$ find ./test -name "abc.txt"./test/abc.txt

也可以使用通配符

$ find ./test -name "*.php"./test/subdir/how.php./test/cool.php

請注意,所有的文件夾都會被遞歸地查找。所以,這是用于查找指定擴展名文件的一種非常強大的方式。

如果我們嘗試搜索 / 文件夾,也就是根目錄,就會搜索整個文件系統,包括掛載的設備以及網絡存儲設備。所以請小心使用。當然,你隨時可以通過按 Ctrl + C 來終止命令。

注意:當指定文件夾的時候(例如示例中的"./test"文件夾),忽略末尾的斜杠是沒有問題的。但是,如果文件夾是一個指向其它位置的鏈接(symlink)時,你必須在末尾寫上斜杠才能使find命令正常工作(find ./test/)。

忽略大小寫

在查找文件名時,忽略大小寫往往非常有用。要忽略大小寫,只需要使用 iname 選項,而不是 name 選項。

$ find ./test -iname "*.Php"./test/subdir/how.php./test/cool.php

總是用雙引號或單引號來包圍匹配模式(文件名參數),這非常有用。不這樣做的話有時也能正常工作,有時也可能會產生奇怪的結果。

3. 限制目錄查找的深度

find 命令默認會遞歸查找整個目錄樹,而這非常消耗時間和資源。好在目錄查找的深度可以手動指定。例如我們只想查找一到兩層以內的子目錄,可以通過 maxdepth 選項來指定。

$ find ./test -maxdepth 2 -name "*.php"./test/subdir/how.php./test/cool.php$ find ./test -maxdepth 1 -name *.php./test/cool.php

第二個示例中指定了 maxdepth 為1,表明最多只查找一層內的子目錄,也就是只查找當前文件夾。

當我們只想在當前目錄下查找,而不是查找整個目錄樹的時候,這個選項會特別有用。

與 maxdepth 選項相似,還有一個選項叫做 mindepth ,正如名字所表示的那樣,它會至少到達第 N 層子目錄后才開始查找文件。

4. 反向查找

除了查找滿足條件的文件之外,我們還可以查找不滿足條件的所有文件。當我們知道要在查找中排除哪些文件時,這個選項就能發揮作用了。

$ find ./test -not -name "*.php"./test./test/abc.txt./test/subdir

在上面的示例中我們找到了所有擴展名不是 php 的文件和文件夾。我們也可以使用感嘆號 ! 來代替 -not。

find ./test ! -name "*.php" 

5. 結合多個查找條件

我們可以同時使用多個查找條件來指定文件名并排除某些文件。

$ find ./test -name 'abc*' ! -name '*.php'./test/abc.txt./test/abc

上面的命令查找所有以 abc 開頭并且不含 .php 擴展名的文件。這個示例展現了 find 命令自帶的查找表達式是多么的強大。

OR 操作符

當我們使用多個查找條件時, find 命令會將它們通過 AND 操作符結合起來,也就是說,只有滿足所有條件的文件才會被列出。不過,如果我們需要進行基于 OR 運算的查找時,可以加上 -o 開關。

$ find -name '*.php' -o -name '*.txt'./abc.txt./subdir/how.php./abc.php./cool.php

上面的命令查找所有以 .php 結尾或者以 .txt 結尾的文件。

6. 只查找文件或目錄

有時我們只想通過某個名字查找對應的文件或對應的目錄,我們可以很容易實現這個要求。

$ find ./test -name abc*./test/abc.txt./test/abc

只查找文件

$ find ./test -type f -name "abc*"./test/abc.txt

只查找目錄

$ find ./test -type d -name "abc*"./test/abc

非常有用而且方便!

7. 同時在多個目錄下查找

如果你想要在兩個不同的目錄內進行查找,命令非常簡單。

$ find ./test ./dir2 -type f -name "abc*"./test/abc.txt./dir2/abcdefg.txt

檢查一下,它確實列出了來自給定的兩個目錄的文件。

8. 查找隱藏文件

在Linux系統中,隱藏文件的名字以英文的句號開頭,即 . 。所以要列出隱藏文件,只需加上簡單的文件名過濾條件就行了。

$ find ~ -type f -name ".*"

二、基于文件權限和屬性的查找

9. 查找指定權限的文件

通過指定 perm 選項,我們可以查找具有特定權限的文件。下面的示例中查找了所有具有 0664 權限的文件。

$ find . -type f -perm 0664./abc.txt./subdir/how.php./abc.php./cool.php

我們可以用這個命令來查找帶有錯誤權限的文件,這些文件可能會產生安全問題。

可以結合 反向查找 來進行權限檢查。

$ find . -type f ! -perm 0777./abc.txt./subdir/how.php./abc.php./cool.php

10. 查找具有 SGID/SUID 屬性的文件

下面的命令查找所有具有 644 權限和 SGID 屬性的文件。

# find / -perm 2644

我們同樣可以使用 1664 來查找設置了 粘滯位 (sticky bit)的文件。

# find / -perm 1644

perm 選項除了接受數值型參數外,同樣接受 chmod 命令中的模式串。在下面的查找中,我們用另一種語法來代替數字。

$ find / -maxdepth 2 -perm /u=s 2>/dev/null/bin/mount/bin/su/bin/ping6/bin/fusermount/bin/ping/bin/umount/sbin/mount.ecryptfs_private

注意:由于權限不足,某些目錄會拒接訪問。命令中的 2>/dev/null 正是用于清除輸出中的錯誤訪問結果。

11. 查找只讀文件

$ find /etc -maxdepth 1 -perm /u=r/etc/etc/thunderbird/etc/brltty/etc/dkms/etc/phpmyadmin... output truncated ...

12. 查找可執行文件

$ find /bin -maxdepth 2 -perm /a=x/bin/bin/preseed_command/bin/mount/bin/zfgrep/bin/tempfile... output truncated ...

三、基于文件擁有者和用戶組的查找

13. 查找屬于特定用戶的文件

查找當前目錄下,屬于 bob 的文件。

$ find . -user bob../abc.txt./abc./subdir./subdir/how.php./abc.php

在指定所屬用戶的同時,我們同樣可以指定文件名。

$ find . -user bob -name '*.php'

很容易看出,我們可以通過增加過濾條件來縮小查找文件的范圍。

14. 查找屬于特定用戶組的文件

# find /var/www -group developer

四、基于日期和時間的查找

除了上面介紹的查找條件外,另外一個非常棒的查找條件就是文件的修改和訪問時間(日期)。當我們想要找出哪些文件在某段時間內被修改的時候,這個查找條件將會非常方便。我們來看幾個例子。

15. 查找過去的第 N 天被修改過的文件

# find / -mtime 50

16. 查找過去的 N 天內被訪問過的文件

# find / -atime -50

17. 查找某段時間范圍內被修改過內容的文件

# find / -mtime +50 -mtime -100

18. 查找過去的 N 分鐘內狀態發生改變的文件

$ find /home/bob -cmin -60

19. 查找過去的 1 小時內被修改過內容的文件

# find / -mmin -60

20. 查找過去的 1 小時內被訪問過的文件

# find / -amin -60

五、基于文件大小的查找

21. 查找指定大小的文件

$ find / -size 50M

22. 查找大小在一定范圍內的文件

$ find / -size +50M -size -100M

23. 查找最大和最小的文件

我們可以將 find 命令與 ls 和 sort命令結合,從而找出最大或最小的文件。

下面的命令使用了 sort 命令的 -r 選項,也就是從大到小降序排列。經過 head 命令的過濾之后,會顯示當前目錄和子目錄下最大的5個文件。命令的執行過程需要一段時間,查找的速度取決于文件的總數。

$ find . -type f -exec ls -s {} /; | sort -n -r | head 5

同樣,我們可以去掉 sort 命令的 -r 選項來進行升序排列,從而顯示出最小的5個文件。

$ find . -type f -exec ls -s {} /; | sort -n | head 5

24. 查找空文件和空目錄

查找空文件:

# find /tmp -type f -empty

查找空目錄:

$ find ~/ -type d -empty

非常簡單!

六、高級操作

find 命令不僅可以通過特定條件來查找文件,還可以對查找到的文件使用任意linux命令進行操作。下面給出兩個例子。

25. 使用 ls 命令列出文件信息

我們使用 find 命令找到文件后,只能看到文件路徑。如果想進一步查看文件信息,可以結合 ls 命令來實現。

$ find . -exec ls -ld {} /;drwxrwxr-x 4 enlightened enlightened 4096 Aug 11 19:01 . -rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:25 ./abc.txtdrwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:48 ./abc drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:26 ./subdir -rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:26 ./subdir/how.php-rw-rw-r-- 1 enlightened enlightened 29 Aug 11 19:13 ./abc.php-rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:25 ./cool.php

26. 刪除找到的文件

下面的命令會刪除 tmp 目錄下擴展名為 .txt 的文件。

$ find /tmp -type f -name "*.txt" -exec rm -f {} /;

我們同樣可以刪除目錄,只要把 -type 后面的 f 改為 d ,并且在 rm 命令后面加上 -r 即可。

$ find /tmp -type d -name "dirToRemove" -exec rm -r -f {} /;

本文由 Wray 翻譯,略有刪改??紤]到原文有個別錯誤,以及為便于讀者理解,故采用意譯的方式。不足之處請大家指出,謝謝。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品国产福利国产秒拍| 久久av红桃一区二区小说| 国产精品一香蕉国产线看观看| 日韩精品免费在线视频观看| 欧美日韩成人网| 久久久国产精品亚洲一区| 欧美在线观看网址综合| 欧美国产亚洲视频| 日韩在线观看免费高清完整版| 啊v视频在线一区二区三区| 精品毛片三在线观看| 国产一区二区三区毛片| 亚洲美女在线观看| 日韩电影免费观看在线| 91精品中文在线| 国产999精品久久久| 欧美亚洲成人xxx| 欧美日韩中文字幕在线| 97精品在线视频| 国产精品99久久99久久久二8| 97超级碰碰碰| 国产最新精品视频| 精品国产欧美一区二区三区成人| 欧美在线性爱视频| 久久久精品久久久久| 在线电影中文日韩| 国产91精品高潮白浆喷水| 日韩中文有码在线视频| 91手机视频在线观看| 中文精品99久久国产香蕉| 久久深夜福利免费观看| 成人免费激情视频| 精品香蕉在线观看视频一| 日韩在线观看成人| 久久亚洲私人国产精品va| 怡红院精品视频| 91牛牛免费视频| 日韩在线播放视频| 2019中文字幕在线观看| 国产中文字幕日韩| 久久艹在线视频| 日本免费久久高清视频| 韩国三级电影久久久久久| 日韩美女视频在线观看| 欧美一区在线直播| 日本sm极度另类视频| 国内精品一区二区三区| 久久久久久久999| 欧美日韩黄色大片| 亚洲欧美激情在线视频| 亚洲四色影视在线观看| 国产国产精品人在线视| 综合国产在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人精品视频久久久久| 欧美亚洲在线视频| 亚洲精品自在久久| 2019中文字幕全在线观看| 亚洲欧美国产日韩中文字幕| 精品美女国产在线| 国产精品av电影| 久久视频在线免费观看| 国产日韩欧美一二三区| 国产精品扒开腿做爽爽爽视频| 欧美性生交大片免网| 亚洲色图国产精品| 日韩精品中文字| 国产精品成人免费电影| 性色av一区二区三区| 亚洲a在线播放| 欧美激情18p| 成人性生交xxxxx网站| 欧美一级片一区| 久久视频精品在线| 国产精品久久久久久五月尺| 日韩中文字幕在线播放| 亚洲激情在线观看视频免费| 57pao国产成人免费| 成人免费观看a| 精品动漫一区二区| 日韩三级影视基地| 亚洲xxxx3d| www.色综合| 欧美肥老妇视频| 91在线精品播放| 成人伊人精品色xxxx视频| 欧美亚洲成人精品| 在线精品高清中文字幕| 欧日韩不卡在线视频| 国产精品人人做人人爽| 亚洲精品国产精品乱码不99按摩| 久久久免费电影| 91av在线免费观看视频| 亚洲国产成人久久综合一区| 欧美中文字幕精品| 亚洲久久久久久久久久| 中文字幕在线观看亚洲| 国产亚洲美女久久| 欧美一级电影免费在线观看| 国产一区二区精品丝袜| 91精品国产成人www| 欧美精品情趣视频| 最近2019中文字幕mv免费看| 国产精品久久久久久超碰| 亚洲国产日韩欧美在线99| 中文在线资源观看视频网站免费不卡| 亚洲欧美日韩国产中文专区| 久久av.com| 久久亚洲春色中文字幕| 亚洲人a成www在线影院| 亚洲国产成人久久综合一区| 亚洲最大av网| 都市激情亚洲色图| 激情久久av一区av二区av三区| 欧美夫妻性生活视频| 高清亚洲成在人网站天堂| 欧美激情成人在线视频| 亚洲а∨天堂久久精品喷水| 亚洲第一视频网站| 国产精品久久久久久久久久久不卡| 在线色欧美三级视频| 欧美亚洲免费电影| 欧美电影在线观看完整版| 欧美丝袜一区二区三区| xvideos亚洲| 国产免费久久av| 91精品免费久久久久久久久| 亚洲香蕉成人av网站在线观看| 日本韩国欧美精品大片卡二| 九九久久久久久久久激情| 91精品视频网站| 亚洲第一区中文99精品| 国产精品99久久久久久久久| 亚洲欧美国产精品专区久久| 亚洲精品乱码久久久久久按摩观| 国产在线a不卡| 久久久www成人免费精品| 久久久天堂国产精品女人| 国产suv精品一区二区| 国产精品一区二区久久国产| 亚洲第一页自拍| 国产日本欧美视频| 国产精品视频26uuu| 国产亚洲精品久久久久久牛牛| 国产成人亚洲精品| 欧美成人免费大片| 最近2019中文字幕一页二页| 疯狂做受xxxx欧美肥白少妇| 国产成人福利视频| 色综合91久久精品中文字幕| 亚洲一区二区黄| 亚洲一区二区久久久久久| 欧美电影在线观看完整版| 亚洲欧美一区二区精品久久久| 精品一区二区三区四区在线| 欧美日韩中文在线观看| 91精品国产自产在线| 亚洲男人天堂视频| 欧美不卡视频一区发布| 日韩精品免费电影| 中文字幕视频一区二区在线有码| 91久久精品国产| 久久不射电影网| 国模精品视频一区二区|