您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關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可以指定搜索的文件類型,linux/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
⑧利用find執行相應操作,比如刪除文件,使用-delete選項;刪除測試目錄下所有的.txt普通文件
還可以利用-exec選項結合其他命令對文件進行更高效的操作,更改文件的所屬權,復制文件等,find命令使用一對花括號{}代表文件名,對于每一個匹配到的文件,find命令會將{}替換成相應的文件名; 如果-exec的命令有多個參數時,需要注意結尾使用 ” \; ” 或者 “+”,前者表示進行轉義,不然系統會以為是find命令的結尾。
我們將測試目錄下的所有的.txt文件由用戶lihongbo轉換到用戶litao999,我們必須以root用戶進行此操作,chown用于更改權限:
⑨:指定find跳過特定的目錄:使用-prune選項可以跳過我們在搜尋的的一些明顯我們不需要的目錄
跳過了./test1目錄
需要指出的是:選項出現的先后次序我們也應該考慮到內,因為它會影響到整條命令的執行效率。
上述就是小編為大家分享的Linux/Unix下find命令的用法是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。