視頻作業:find命令詳解
大綱:
1、什么是find
2、find能實現什么功能
3、為什么要使用find
4、如何使用find
5、find各參數詳解
1、什么是find
find是linux 命令,它將檔案系統內符合 expression(表達式) 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、權限等不同資訊的組合,只有完全相符的才會被列出來。find 根 據下列規則判斷 path 和 expression,在命令列上第一個 – ( ) , ! 之前的部分為 path,之后的是 expression。
簡單的來說,find是用來實現查找功能的,可以根據不同的表達式與指定的路徑來查找相對應的內容。
2、find能實現什么功能
首先,find能實現最基本的功能就是查找,在實現查找功能后可根據參數來實現追加操作,例如:將查找出來的數據刪除、詳細展示查找出來的數據等。
3、為什么要使用find
其實,能實現查詢功能的命令還有locate,它的優點就是查詢速度快,但是它非常依賴于事先構建好的索引庫,如果索引庫遭到破壞,就基本上喪失了其核心功能。而且它是非實時性的, 造成的后果就是不精確,對于數據吞吐量很大的環境查找新鮮數據非常有局限性。
而find雖然查詢速度相較于locate比較慢,但是它是一款實時查找工具,通過遍歷指定起始路徑下文件系統層級結構完成文件查找,不依賴于索引庫,適用于任何情況下,所以綜合以上幾 點,find確實是一款比較優秀的查詢工具。
4、如何使用find
find功能非常強大,可將查詢條件隨意組合,而且在查詢完畢后可根據追加操作來處理數據,具體格式如下:
find [查找路徑] [查找條件] [追加操作]
注:如果不寫路徑,默認是查找當前目錄下的所有文件及目錄,
如果不寫參數默認是根據文件名查找(-name)
5、find各參數詳解
查找條件:可按照文件名、大小、類型、從屬關系、權限等標準進行;
查找結果:結果只能為布爾型(真or假)
2 根據文件名查找:
-name:
-iname:不區分條件的大小寫 (以上都支持通配符)
*,?、[]、[^] [[:digit:]] [[alpha]] ….
–regex pattern:基于正則表達式模式查找文件,匹配是整個路徑,而非基名
注:如需使用通配符,請用雙引號
2 根據文件從屬關系查找:
-user: 查找屬主指定用戶的所有文件;
-group: 查找屬組指定組的所有文件;
-uid: 查找屬主指定UID的所有文件;
-gid : 查找屬組指定的GID的所有文件
-nouser: 查找沒有屬主的文件
-nogroup: 查找沒有屬組的文件;
2 根據文件類型查找:
-type:
f:普通文件
l:符號鏈接文件
b:塊設備文件
c:字符設備
p:管道文件
s:套接字文件
2 根據文件大小查找:
-size [+|-]#(K,M,G)
–size 10M: 查找10M的文件或文件夾
-size +10M: 查找大于10M的文件或文件夾
-size -10M: 查找小于10M的文件或文件夾
2 根據時間戳查找:
以天為單位:
-atime [+ | -]#: 查看訪問目錄或文件的時間;
-atime -7 :查看一周內被訪問過的文件或目錄;
-mtime [+ | -]#:查看修改過文件或目錄的時間;
-mtime -7:查看一周內被修改過的文件或目錄;
-ctime [+ | -]#: 查看元數據被修改過的目錄或文件的時間;
-ctime -7 :查看一周內元數據被修改過的文件或目錄;
注:元數據是指一個文件或目錄的權限、從屬關系、時間戳、等相關描素信息。
以分鐘為單位:
-amin: [+ | -]#:
-mmin:[+ | -]#:
-cmin: [+ | -]#:
2 根據權限查找:
-perm:[mode |-mode |/mode]
mode:精確權限查找;八進制權限
-mode:任何每一類用戶(u,g,o)的權限每一位(r,w,x)同時符合條件既滿足; 每一類之間是and的關系;
/mode:任何用戶的任意一位(u,g,o)只要符合指定的權限既滿足(/666, 只要任何一位有w or r or x既滿足。)
總結:【注: !代表取反,以2(代表寫入權限)為例:】
-perm /222 只要任何一位有w既滿足:
! -perm -222 只要任何一位沒有w既滿足: (嘆橫杠只沒)
! -perm /222 所有位都沒有w既滿足 (嘆斜杠所沒)
-perm -222 所有位都有w既滿足
組合測試:
與: -a 默認組合操作,代表同時滿足 ~]#find /etc/ -name passwd (-a) -type f
或:-o:只需滿足其中一個條件
非: ! -not
find / ! 條件一 -a !條件二 = find / ! \(條件一 -o 條件二 \)
find / ! 條件一 -o !條件二 = find / ! \(條件一 -a 條件二 \)
以上兩種書寫格式都成立
處理動作:
-print:輸出至標準輸出:默認動作;
-ls:類似于對查找到的文件執行ls –l 命令,輸出文件的詳細;
-delete:刪除查找的文件;
-fls /PATH/TO/SOMEFILE:把查找到的所有文件的長格式信息保存至指定文件中;
-ok COMMAND {} \; : 對查找到的每個文件執行由COMMAND表示的命令;{}:占位符 (需要用戶確認)
~]# find ./ -nouser -a –nogroup –ok chown root:root {} \;
-exec COMMAND {} \; :對查找到的每個文件執行又COMMAND表示的命令(無需用戶確認)
原創文章,作者:N25_韓奇洋,如若轉載,請注明出處:http://www.www58058.com/63838