<span id="vexk9"><table id="vexk9"></table></span>

      find

      在指定目錄下查找文件

      補充說明

      find命令 用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設(shè)置任何參數(shù),則find命令將在當前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進行顯示。

      語法

      find(選項)(參數(shù))
      

      選項

      -amin<分鐘>:查找在指定時間曾被存取過的文件或目錄,單位以分鐘計算;
      -anewer<參考文件或目錄>:查找其存取時間較指定文件或目錄的存取時間更接近現(xiàn)在的文件或目錄;
      -atime<24小時數(shù)>:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算;
      -cmin<分鐘>:查找在指定時間之時被更改過的文件或目錄;
      -cnewer<參考文件或目錄>查找其更改時間較指定文件或目錄的更改時間更接近現(xiàn)在的文件或目錄;
      -ctime<24小時數(shù)>:查找在指定時間之時被更改的文件或目錄,單位以24小時計算;
      -daystart:從本日開始計算時間;
      -depth:從指定目錄下最深層的子目錄開始查找;
      -expty:尋找文件大小為0 Byte的文件,或目錄下沒有任何子目錄或文件的空目錄;
      -exec<執(zhí)行指令>:假設(shè)find指令的回傳值為True,就執(zhí)行該指令;
      -false:將find指令的回傳值皆設(shè)為False;
      -fls<列表文件>:此參數(shù)的效果和指定“-ls”參數(shù)類似,但會把結(jié)果保存為指定的列表文件;
      -follow:排除符號連接;
      -fprint<列表文件>:此參數(shù)的效果和指定“-print”參數(shù)類似,但會把結(jié)果保存成指定的列表文件;
      -fprint0<列表文件>:此參數(shù)的效果和指定“-print0”參數(shù)類似,但會把結(jié)果保存成指定的列表文件;
      -fprintf<列表文件><輸出格式>:此參數(shù)的效果和指定“-printf”參數(shù)類似,但會把結(jié)果保存成指定的列表文件;
      -fstype<文件系統(tǒng)類型>:只尋找該文件系統(tǒng)類型下的文件或目錄;
      -gid<群組識別碼>:查找符合指定之群組識別碼的文件或目錄;
      -group<群組名稱>:查找符合指定之群組名稱的文件或目錄;
      -help或--help:在線幫助;
      -ilname<范本樣式>:此參數(shù)的效果和指定“-lname”參數(shù)類似,但忽略字符大小寫的差別;
      -iname<范本樣式>:此參數(shù)的效果和指定“-name”參數(shù)類似,但忽略字符大小寫的差別;
      -inum<inode編號>:查找符合指定的inode編號的文件或目錄;
      -ipath<范本樣式>:此參數(shù)的效果和指定“-path”參數(shù)類似,但忽略字符大小寫的差別;
      -iregex<范本樣式>:此參數(shù)的效果和指定“-regexe”參數(shù)類似,但忽略字符大小寫的差別;
      -links<連接數(shù)目>:查找符合指定的硬連接數(shù)目的文件或目錄;
      -lname<范本樣式>:指定字符串作為尋找符號連接的范本樣式;
      -ls:假設(shè)find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出;
      -maxdepth<目錄層級>:設(shè)置最大目錄層級;
      -mindepth<目錄層級>:設(shè)置最小目錄層級;
      -mmin<分鐘>:查找在指定時間曾被更改過的文件或目錄,單位以分鐘計算;
      -mount:此參數(shù)的效果和指定“-xdev”相同;
      -mtime<24小時數(shù)>:查找在指定時間曾被更改過的文件或目錄,單位以24小時計算;
      -name<范本樣式>:指定字符串作為尋找文件或目錄的范本樣式;
      -newer<參考文件或目錄>:查找其更改時間較指定文件或目錄的更改時間更接近現(xiàn)在的文件或目錄;
      -nogroup:找出不屬于本地主機群組識別碼的文件或目錄;
      -noleaf:不去考慮目錄至少需擁有兩個硬連接存在;
      -nouser:找出不屬于本地主機用戶識別碼的文件或目錄;
      -ok<執(zhí)行指令>:此參數(shù)的效果和指定“-exec”類似,但在執(zhí)行指令之前會先詢問用戶,若回答“y”或“Y”,則放棄執(zhí)行命令;
      -path<范本樣式>:指定字符串作為尋找目錄的范本樣式;
      -perm<權(quán)限數(shù)值>:查找符合指定的權(quán)限數(shù)值的文件或目錄;
      -print:假設(shè)find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式為每列一個名稱,每個名稱前皆有“./”字符串;
      -print0:假設(shè)find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式為全部的名稱皆在同一行;
      -printf<輸出格式>:假設(shè)find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式可以自行指定;
      -prune:不尋找字符串作為尋找文件或目錄的范本樣式;
      -regex<范本樣式>:指定字符串作為尋找文件或目錄的范本樣式;
      -size<文件大小>:查找符合指定的文件大小的文件;
      -true:將find指令的回傳值皆設(shè)為True;
      -type<文件類型>:只尋找符合指定的文件類型的文件;
      -uid<用戶識別碼>:查找符合指定的用戶識別碼的文件或目錄;
      -used<日數(shù)>:查找文件或目錄被更改之后在指定時間曾被存取過的文件或目錄,單位以日計算;
      -user<擁有者名稱>:查找符和指定的擁有者名稱的文件或目錄;
      -version或——version:顯示版本信息;
      -xdev:將范圍局限在先行的文件系統(tǒng)中;
      -xtype<文件類型>:此參數(shù)的效果和指定“-type”參數(shù)類似,差別在于它針對符號連接檢查。
      

      參數(shù)

      起始目錄:查找文件的起始目錄。

      實例

      # 當前目錄搜索所有文件,文件內(nèi)容 包含 “140.206.111.111” 的內(nèi)容
      find . -type f -name "*" | xargs grep "140.206.111.111"
      

      根據(jù)文件或者正則表達式進行匹配

      列出當前目錄及子目錄下所有文件和文件夾

      find .
      

      /home目錄下查找以.txt結(jié)尾的文件名

      find /home -name "*.txt"
      

      同上,但忽略大小寫

      find /home -iname "*.txt"
      

      當前目錄及子目錄下查找所有以.txt和.pdf結(jié)尾的文件

      find . \( -name "*.txt" -o -name "*.pdf" \)find . -name "*.txt" -o -name "*.pdf"
      

      匹配文件路徑或者文件

      find /usr/ -path "*local*"
      

      基于正則表達式匹配文件路徑

      find . -regex ".*\(\.txt\|\.pdf\)$"
      

      同上,但忽略大小寫

      find . -iregex ".*\(\.txt\|\.pdf\)$"
      

      否定參數(shù)

      找出/home下不是以.txt結(jié)尾的文件

      find /home ! -name "*.txt"
      

      根據(jù)文件類型進行搜索

      find . -type 類型參數(shù)
      

      類型參數(shù)列表:

      基于目錄深度搜索

      向下最大深度限制為3

      find . -maxdepth 3 -type f
      

      搜索出深度距離當前目錄至少2個子目錄的所有文件

      find . -mindepth 2 -type f
      

      根據(jù)文件時間戳進行搜索

      find . -type f 時間戳
      

      UNIX/Linux文件系統(tǒng)每個文件都有三種時間戳:

      搜索最近七天內(nèi)被訪問過的所有文件

      find . -type f -atime -7
      

      搜索恰好在七天前被訪問過的所有文件

      find . -type f -atime 7
      

      搜索超過七天內(nèi)被訪問過的所有文件

      find . -type f -atime +7
      

      搜索訪問時間超過10分鐘的所有文件

      find . -type f -amin +10
      

      找出比file.log修改時間更長的所有文件

      find . -type f -newer file.log
      

      根據(jù)文件大小進行匹配

      find . -type f -size 文件大小單元
      

      文件大小單元:

      搜索大于10KB的文件

      find . -type f -size +10k
      

      搜索小于10KB的文件

      find . -type f -size -10k
      

      搜索等于10KB的文件

      find . -type f -size 10k
      

      刪除匹配文件

      刪除當前目錄下所有.txt文件

      find . -type f -name "*.txt" -delete
      

      根據(jù)文件權(quán)限/所有權(quán)進行匹配

      當前目錄下搜索出權(quán)限為777的文件

      find . -type f -perm 777
      

      找出當前目錄下權(quán)限不是644的php文件

      find . -type f -name "*.php" ! -perm 644
      

      找出當前目錄用戶tom擁有的所有文件

      find . -type f -user tom
      

      找出當前目錄用戶組sunk擁有的所有文件

      find . -type f -group sunk
      

      借助-exec選項與其他命令結(jié)合使用

      找出當前目錄下所有root的文件,并把所有權(quán)更改為用戶tom

      find .-type f -user root -exec chown tom {} \;
      

      上例中, {} 用于與 -exec 選項結(jié)合使用來匹配所有文件,然后會被替換為相應(yīng)的文件名。

      找出自己家目錄下所有的.txt文件并刪除

      find $HOME/. -name "*.txt" -ok rm {} \;
      

      上例中, -ok-exec 行為一樣,不過它會給出提示,是否執(zhí)行相應(yīng)的操作。

      查找當前目錄下所有.txt文件并把他們拼接起來寫入到all.txt文件中

      find . -type f -name "*.txt" -exec cat {} \;> /all.txt
      

      將30天前的.log文件移動到old目錄中

      find . -type f -mtime +30 -name "*.log" -exec cp {} old \;
      

      找出當前目錄下所有.txt文件并以“File:文件名”的形式打印出來

      find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;
      

      因為單行命令中-exec參數(shù)中無法使用多個命令,以下方法可以實現(xiàn)在-exec之后接受多條命令

      -exec ./text.sh {} \;
      

      搜索但跳過指定的目錄

      查找當前目錄或者子目錄下所有.txt文件,但是跳過子目錄sk

      find . -path "./sk" -prune -o -name "*.txt" -print
      

      :warning: ./sk 不能寫成 ./sk/ ,否則沒有作用。

      忽略兩個目錄

      find . \( -path ./sk -o  -path ./st \) -prune -o -name "*.txt" -print
      

      :warning: 如果寫相對路徑必須加上./

      find其他技巧收集

      要列出所有長度為零的文件

      find . -empty
      

      其它實例

      find ~ -name '*jpg' # 主目錄中找到所有的 jpg 文件。 -name 參數(shù)允許你將結(jié)果限制為與給定模式匹配的文件。
      find ~ -iname '*jpg' # -iname 就像 -name,但是不區(qū)分大小寫
      find ~ ( -iname 'jpeg' -o -iname 'jpg' ) # 一些圖片可能是 .jpeg 擴展名。幸運的是,我們可以將模式用“或”(表示為 -o)來組合。
      find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f # 如果你有一些以 jpg 結(jié)尾的目錄呢? (為什么你要命名一個 bucketofjpg 而不是 pictures 的目錄就超出了本文的范圍。)我們使用 -type 參數(shù)修改我們的命令來查找文件。
      find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d # 也許你想找到那些命名奇怪的目錄,以便稍后重命名它們
      

      最近拍了很多照片,所以讓我們把它縮小到上周更改的文件

      find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7
      

      你可以根據(jù)文件狀態(tài)更改時間 (ctime)、修改時間 (mtime) 或訪問時間 (atime) 來執(zhí)行時間過濾。 這些是在幾天內(nèi),所以如果你想要更細粒度的控制,你可以表示為在幾分鐘內(nèi)(分別是 cmin、mmin 和 amin)。 除非你確切地知道你想要的時間,否則你可能會在 + (大于)或 - (小于)的后面加上數(shù)字。

      但也許你不關(guān)心你的照片。也許你的磁盤空間不夠用,所以你想在 log 目錄下找到所有巨大的(讓我們定義為“大于 1GB”)文件:

      find /var/log -size +1G
      

      或者,也許你想在 /data 中找到 bcotton 擁有的所有文件:

      find /data -owner bcotton
      

      你還可以根據(jù)權(quán)限查找文件。也許你想在你的主目錄中找到對所有人可讀的文件,以確保你不會過度分享。

      find ~ -perm -o=r
      

      刪除 mac 下自動生成的文件

      find ./ -name '__MACOSX' -depth -exec rm -rf {} \;
      

      統(tǒng)計代碼行數(shù)

      find . -name "*.java"|xargs cat|grep -v ^$|wc -l # 代碼行數(shù)統(tǒng)計, 排除空行
      
      主站蜘蛛池模板: 国产成人综合久久精品| 久久狠狠爱亚洲综合影院| 亚洲国产成人久久综合| 色综合久久98天天综合| 亚洲综合激情五月丁香六月| 狠狠色丁香久久婷婷综合蜜芽五月| 老色鬼久久亚洲AV综合| 人人狠狠综合久久亚洲| 狠狠色婷婷七月色综合| 国产成人久久精品77777综合| 国产精品综合久久第一页| 中文字幕亚洲综合小综合在线| 国产亚洲Av综合人人澡精品| 亚洲国产综合专区电影在线| 色综合久久88色综合天天| 色综合久久精品中文字幕首页| 一本久道久久综合| 狠狠色综合TV久久久久久| 亚洲国产成+人+综合| 亚洲香蕉网久久综合影视| 婷婷六月久久综合丁香可观看| 色拍自拍亚洲综合图区| 伊人性伊人情综合网| 精品国产国产综合精品| 色综合天天色综合| 色噜噜狠狠狠狠色综合久不| 色噜噜狠狠狠狠色综合久| 亚洲熟女综合色一区二区三区| 99久久综合精品免费| 亚洲综合无码一区二区三区| 无码专区久久综合久中文字幕| 国产91久久综合| 伊人亚洲综合青草青草久热| HEYZO无码综合国产精品227| 狠狠色丁香久久婷婷综合| 伊人网综合在线视频| 亚洲国产综合人成综合网站00| 天天影视色香欲综合免费| 亚洲av永久中文无码精品综合 | 精品综合久久久久久98| 狠狠色狠狠色综合系列|