免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

教你Linux find命令實例教程:15個find命令用法

:2020年01月05日 CU技術社區
分享到:

點擊添加圖片描述(最多60個字)在系統上查找文件或目錄時,Linux上的find命令無與倫比。它使用簡單,而且有許多不同的選項,可讓您微調文件搜索。繼續閱讀以查看如何使用此命令在系統上查找任何內容的示...

點擊添加圖片描述(最多60個字)

在系統上查找文件或目錄時,Linux上的find命令無與倫比。它使用簡單,而且有許多不同的選項,可讓您微調文件搜索。

繼續閱讀以查看如何使用此命令在系統上查找任何內容的示例。一旦您知道如何在Linux中使用find命令,每個文件都只需敲擊幾下。

目錄

  1. 查找目錄

  2. 查找隱藏文件

  3. 查找特定大小或大于X的文件

  4. 從文件列表中查找

  5. 不在列表中查找

  6. 設置maxdepth

  7. 查找空文件(零長度)

  8. 查找最大的目錄或文件

  9. 查找setuid設置文件

  10. 查找sgid設置文件

  11. 列出文件未經允許被拒絕

  12. 在最近X天內查找修改過的文件

  13. 按時間排序

  14. 定位和查找之間的區別

  15. find命令的CPU負載

查找目錄

您可以使用-type d選項告訴find命令專門查找目錄。這將使find命令僅搜索匹配的目錄名,而不搜索文件名。

$ find /path/to/search -type d -name "name-of-dir"

查找隱藏文件

由于Linux中的隱藏文件和目錄以句點開頭,因此我們可以在搜索字符串中指定此搜索模式,以便遞歸列出隱藏的文件和目錄。

$ find /path/to/search -name ".*"

查找特定大小或大于X的文件

find的-size選項允許我們搜索特定大小的文件。它可用于查找確切大小的文件,大于或小于特定大小的文件或適合指定大小范圍的文件。以下有些例子:

搜索大于10MB的文件:

$ find /path/to/search -size +10M

搜索小于10MB的文件:

$ find /path/to/search -size -10M

搜索大小恰好為10MB的文件:

$ find /path/to/search -size 10M

搜索大小在100MB到1GB之間的文件:

$ find /path/to/search -size +100M -size -1G

從文件列表中查找

如果您有需要搜索的文件列表(例如,在.txt文件中),則可以使用find和grep命令的組合來搜索文件列表。為了使此命令起作用,只需確保要搜索的每個模式之間都用換行符隔開。

$ find /path/to/search | grep -f filelist.txt

grep的-f選項表示“file”,并允許我們指定要匹配的字符串文件。這導致find命令返回與列表中的文件或目錄名稱匹配的任何文件或目錄名稱。

不在列表中查找

使用上一個示例中提到的相同文件列表,您還可以使用find來搜索與文本文件內的模式不符的任何文件。再一次,我們將結合使用find和grep命令;我們只需要用grep指定一個附加選項:

$ find /path/to/search | grep -f filelist.txt

grep的-v選項表示“逆向匹配”,并且將返回與文件列表中指定的任何模式都不匹配的文件列表。

設置maxdepth

find命令默認將進行遞歸搜索。這意味著它將在指定的目錄中搜索您指定的模式,以及您告訴它要搜索的目錄中的所有子目錄。

例如,如果告訴find搜索Linux(/)的根目錄,則無論存在多少個子目錄,它都會搜索整個硬盤。您可以使用-maxdepth選項來規避此行為。

在-maxdepth之后指定一個數字,以指示查找應遞歸搜索的子目錄數。

僅搜索當前目錄中的文件,而不遞歸搜索:

$ find . -maxdepth 0 -name "myfile.txt"

僅在當前目錄和更深的一個子目錄中搜索文件:

$ find . -maxdepth 1 -name "myfile.txt"

查找空文件(零長度)

要使用find搜索空文件,可以使用-empty標志。搜索所有空文件:

$ find /path/to/search -type f -empty

搜索所有空目錄:

$ find /path/to/search -type d -empty

如果希望自動刪除find返回的空文件或目錄,那么將此命令與-delete選項結合使用也非常方便。

刪除目錄(和子目錄)中的所有空文件:

$ find /path/to/search -type f -empty -delete

查找最大的目錄或文件

如果您想快速確定系統上哪些文件或目錄占用了最多的空間,則可以使用find進行遞歸搜索,并按文件和目錄的大小輸出排序的列表。

如何顯示目錄中最大的文件:

$ find /path/to/search -type f -printf "%s\t%p\n" | sort -n | tail -1

請注意,find命令已被排序到另外兩個方便的Linux實用程序:sort和tail。 Sort將按文件的大小順序排列文件列表,而tail將僅輸出列表中的最后一個文件,該文件也是最大的。

如果您要輸出例如最大的前5個文件,則可以調整tail命令。

$ find /path/to/search -type f -printf "%s\t%p\n" | sort -n | tail -5

或者,您可以使用head命令來確定最小的文件:

$ find /path/to/search -type f -printf "%s\t%p\n" | sort -n | head -5

如果要搜索目錄而不是文件,只需在類型選項中指定“ d”即可。如何顯示最大目錄:

$ find /path/to/search -type d -printf "%s\t%p\n" | sort -n | tail -1

查找setuid設置文件

Setuid是“set user ID on execution”的縮寫,它是一種文件權限,允許普通用戶運行具有升級特權(例如root)的程序。

出于明顯的原因,這可能是一個安全問題,但是可以使用find命令和一些選項輕松隔離這些文件。

find命令有兩個選項可幫助我們搜索具有特定權限的文件:-user和-perm。要查找普通用戶能夠以root特權執行的文件,可以使用以下命令:

$ find /path/to/search -user root -perm /4000

在上面的屏幕截圖中,我們包含了-exec選項,以便顯示有關查找返回文件的更多輸出。整個命令如下所示:

$ find /path/to/search -user root -perm /4000 -exec ls -l {} \;

您也可以在此命令中用“ root”代替您要作為所有者搜索的任何其他用戶。或者,您可以搜索具有SUID權限的所有文件,而根本不指定一個用戶:

$ find /path/to/search -perm /4000

查找sgid設置文件

查找具有SGID設置的文件與查找具有SUID的文件幾乎相同,只是需要將4000的權限更改為2000:

$ find /path/to/search -perm /2000

您還可以通過在perms選項中指定6000來搜索,同時設置了SUID和SGID的文件:

$ find /path/to/search -perm /6000

列出文件未經允許被拒絕

使用find命令搜索文件時,您必須對要搜索的目錄和子目錄具有讀取權限。如果您沒有找到,find將輸出一條錯誤消息,但會繼續瀏覽您確實擁有權限的目錄。

點擊添加圖片描述(最多60個字)

沒有權限盡管這可能發生在許多不同的目錄中,但在搜索根目錄時肯定會發生。

這意味著,當您嘗試在整個硬盤上搜索文件時,find命令將產生大量錯誤消息。

為避免看到這些錯誤,您可以將find的stderr輸出重定向到stdout,并將其通過管道傳遞到grep。

$ find / -name "myfile.txt" 2>%1 | grep -v "Permission denied"

此命令使用grep的-v(反向)選項來顯示所有輸出,除了顯示“拒絕權限”之外的所有輸出。

查找最近X天內的修改文件

使用find命令上的-mtime選項搜索最近X天內被修改的文件或目錄。它也可以用于搜索X天之前的文件,或X天之前被完全修改過的的文件。

以下是一些如何在find命令上使用-mtime選項的示例:

搜索最近30天內修改過的所有文件:

$ find /path/to/search -type f -mtime -30

搜索超過30天之前已修改的所有文件:

$ find /path/to/search -type f -mtime +30

搜索30天前剛修改過的所有文件:

$ find /path/to/search -type f -mtime 30

如果希望find命令輸出有關找到的文件的更多信息,例如修改日期,則可以使用-exec選項并包含ls命令:

$ find /path/to/search -type f -mtime -30 -exec ls -l {} \;

按時間排序

要按文件的修改時間對查找結果進行排序,您可以使用-printf選項以可排序的方式列出時間,然后將其輸出到sort實用程序。

$ find /path/to/search -printf "%T+\t%p\n" | sort

此命令將對舊的文件進行排序。如果您希望較新的文件首先顯示,只需傳遞-r(反向)選項即可進行排序。

$ find /path/to/search -printf "%T+\t%p\n" | sort -r

定位和查找之間的區別

Linux上的locate命令是搜索系統上文件的另一種好方法。它沒有像find命令那樣包含過多的搜索選項,因此它的靈活性較差,但仍然很方便。

$ locate myfile.txt

locate命令通過搜索包含系統上所有文件名的數據庫來工作。搜索到的數據庫已使用upatedb命令進行更新。

由于locate命令不必實時搜索系統上的所有文件,因此它比find命令效率更高。但是,除了缺少選項之外,還有另一個缺點:文件數據庫每天僅更新一次。

您可以通過運行updatedb命令手動更新此文件數據庫:

$ updatedb

當您需要在整個硬盤驅動器中搜索文件時,locate命令特別有用,因為find命令自然需要更長的時間,因為它必須實時遍歷每個目錄。

如果搜索一個特定目錄(已知其中不包含大量子目錄),則最好堅持使用find命令。

查找命令的CPU負載

在搜索大量目錄時,find命令可能會占用大量資源。它本來應該允許更重要的系統進程具有優先級,但是如果需要確保find命令占用生產服務器上的較少資源,則可以使用ionice或nice命令。

監視find命令的CPU使用情況:

$ top

降低find命令的輸入/輸出優先級:

$ ionice -c3 -n7 find /path/to/search -name "myfile.txt"

降低find命令的CPU優先級:

$ nice -n 19 find /path/to/search -name "myfile.txt"

或結合使用這兩個實用程序以真正確保低I / O和低CPU優先級:

$ nice -n ionice -c2 -n7 find /path/to/search -name "myfile.txt"

[我要糾錯]
文:宋聰喬&發表于江蘇
關鍵詞: 點擊 添加 圖片 描述 最多

來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。

點個贊
0
踩一腳
0

您在閱讀:教你Linux find命令實例教程:15個find命令用法

Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

蘇公網安備32010402000125 蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司

南京思必達教育科技有限公司版權所有   百度統計

主站蜘蛛池模板: 亚洲图片欧美色图 | 一区二区午夜 | 2022国产精品手机在线观看 | 久久成人18| 男女午夜激情 | 黄色大片网 | 中文字幕欧美亚洲 | 天天躁狠狠躁狠狠躁夜夜躁 | 午夜视频网站在线观看 | 欧美特黄a级高清免费大片 欧美太黄太色视频在线观看 | 精品亚洲成a人片在线观看 精品亚洲成a人在线播放 | 日韩亚洲一区中文字幕在线 | 亚洲第一看片 | 日韩精品免费一级视频 | 色婷婷久| 午夜极品 | 久久久久精彩视频 | 中文字幕网站 | 欧美人与牲动交xxxxbbbb | 国产高清不卡视频在线播放 | 欧美一区二区视频在线观看 | 精品福利在线观看 | 手机成人在线视频 | 皇色在线 | 亚洲欧美日韩高清中文在线 | 在线一区播放 | 六月丁香在线播放 | 欧美视频在线不卡 | 免费看v片网站 | 日本午色www高清视频 | 日韩在线免费播放 | 国产成人免费高清激情明星 | 成人国产精品视频频 | 成人在线观看国产 | 午夜剧场操一操 | 欧美午夜理伦三级理论三级 | 国产一级爱c片免费观看 | 国产黄视频在线观看 | 日韩中文字幕在线免费观看 | 一区二区三区在线视频播放 | xxx性欧美 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼