Linux/Unix重要find命令詳解
find(查詢)主要沿著檔案層次(目錄)結構依次向下遍歷,匹配符合條件的檔案,可以附帶執行相應的操作選項,預設的操作結果是列印出符合條件的檔案與目錄。 |
主要功能如下(所有測試均在當前目錄(test)下開始匹配,搜尋):
列出給定目錄(base_path)下所有的檔案和子目錄:
find base_path -print
補充:根據檔名和正規表示式進行搜尋,使用選項 -name或-iname(忽略大小寫):
find base_path -name ‘xxx’ -print find base_path -iname ’xxx‘ -print
此處將列印出除txt文字檔案外的的所有檔案。
find 指定遍歷完所有的子目錄。使用-maxdepth和-mindefth可以限制find 遍歷的目錄深度,並且find命令預設不搜尋符號連結,可以用-L選項改變這種行為。
例如-maxdepth的引數為1時,只匹配當前目錄下。
-mindepth的引數代表了開始進行匹配的目錄到base_path的最短距離。
使用-type可以指定搜尋的檔案型別, /unix將所有的的一切都視為檔案(檔案型別有:普通檔案f,目錄d,符號連結 l,字元裝置c,塊裝置b,套接字s,FIFO-p),使用 -type選項我們能夠對檔案型別進行過濾。
此處就會只匹配出特定項下的所有普通檔案,和目錄。
Linux/Unix檔案系統中的每一個檔案都有三種時間戳,訪問時間(-atime),修改時間(-mtime),變化時間(-ctime),單位為天數,用整數指定,數字前加上+,表示大於這個時間;加上-,表示小於這個天數;不加表示剛好這個天數。
此處的檔案是我在進行截圖之前才建立的,訪問,修改,變化時間均小於一天。
當然相應的用分鐘作為單位就可以用選項(-amin)(-mmin)(-cmin),如下我們測試修改時間
find提供了指定檔案大小的單位選項進而搜尋符合大小檔案的功能,這個搜尋也常常會讓使用者感到非常舒服(b:塊, c:位元組, w:字, k:千位元組, M:兆位元組, G:吉位元組)。
在搜尋之前我們先用ls(list)指令來檢視下當前目錄下的檔案資訊:
資訊的第五列就是各檔案目錄的大小(位元組),我們透過指定匹配條件來搜尋:
經過測試,在開始目錄下,檔案型別為普通目錄,檔案大小大於30個位元組的檔案就是zl.txt了
-perm選項指定了find指匹配指定許可權的檔案,引數為檔案對應的許可權碼。
我們仍然可參考⑥中的所有檔案資訊的第一列,此處需要掌握一定關於檔案許可權的知識。如下我們查詢許可權為644的普通檔案,即使用者可讀寫,組使用者可讀,其他可讀。
也可以用選項-user,匹配指定使用者所擁有的檔案,引數為使用者名稱或者UID
比如刪除檔案,使用-delete選項;刪除測試目錄下所有的.txt普通檔案
還可以利用-exec選項結合其他命令對檔案進行更高效的操作,更改檔案的所屬權,複製檔案等,find命令使用一對花括號{}代表檔名,對於每一個匹配到的檔案,find命令會將{}替換成相應的檔名; 如果-exec的命令有多個引數時,需要注意結尾使用 " \; " 或者 "+",前者表示進行轉義,不然系統會以為是find命令的結尾。
我們將測試目錄下的所有的.txt檔案由使用者lihongbo轉換到使用者litao999,我們必須以root使用者進行此操作,chown用於更改許可權:
使用-prune選項可以跳過我們在搜尋的的一些明顯我們不需要的目錄
跳過了./test1目錄
需要指出的是:選項出現的先後次序我們也應該考慮到內,因為它會影響到整條命令的執行效率。
提示:本文需要掌握關於ls(list), chown(changeowner)等命令,以及關於Linux/Unix檔案系統檔案型別和檔案許可權等知識。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2673646/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux/unix find命令Linux
- Linux find 命令詳解Linux
- Linux find命令詳解Linux
- (轉)Linux find命令詳解Linux
- Linux下find命令詳解Linux
- Linux/Unix 檔案查詢命令 find, xargs 詳述Linux
- linux/unix dd命令詳解Linux
- linux/unix crontab命令詳解Linux
- linux/unix uname命令詳解Linux
- linux/unix ulimit命令詳解LinuxMIT
- find命令詳解
- find 命令詳解
- `find` 命令詳解
- unix at命令詳解
- Linux中find命令-path -prune用法詳解Linux
- UNIX命令詳解(轉)
- Linux重要命之sed命令詳解Linux
- linux下find,xargs命令詳解和例項Linux
- [轉]UNIX find命令實踐
- find 命令的引數詳解
- linux find詳解(轉)Linux
- 每天一個 Linux 命令(22):find 命令的引數詳解Linux
- Linux/Unix環境下的make命令詳解(轉)Linux
- UNix下chmod,chown命令 詳解
- Linux 中 RPM 命令引數使用詳解 [其它Linux/unix]Linux
- unix 命令詳解 - 轉自網路
- linux find命令Linux
- linux find 命令Linux
- linux find 命令!Linux
- UNIX find 命令的高階技術 (轉)
- Unix/Linux中nohup命令講解Linux
- Linux檔案查詢命令find,xargs詳述Linux
- find命令的exec選項用法詳解(轉)
- Linux檔案查詢命令find,xargs詳述(轉)Linux
- Linux at命令詳解Linux
- 【LINUX 學習】使用find和xargs[轉摘自《shell程式設計和unix命令》]Linux程式設計
- linux中file命令和find命令Linux
- Linux精講——find命令Linux