您好,登錄后才能下訂單哦!
Linux文件查找詳解
我們之前學過的grep、egrep以及fgrep命令是Linux的文本查找命令,只是單純地匹配字符串的命令,而不是文件查找命令。
·文件查找的常用命令
1,locate:
locate是在全系統查找文件的命令,但是locate的查找是非實時的、非精確的,進行模糊匹配的一種查找方式,因為此種文件查找的方式是根據全系統文件數據庫進行的,而該數據庫只有在每天晚上才會更新,因此是非實時查找,但是這個文件數據庫我們可以手動生成,為了使我們可以實時的查找文件,我們可以手動更新該數據庫。
生成文件數據庫的命令:updatedb
優點:locate命令執行速度快
2,find:
find命令支持實時查找,精確查找,而且支持多種查找標準,但是find命令的執行速度慢,這是因為find命令是遍歷指定目錄下的所有文件進行查找,所以執行速度慢。
用法格式:
->find 查找路徑 查找標準 查找以后的處理動作
查找路徑可以省略,省略以后就表示默認查找當前目錄
查找標準默認為查找指定路徑下的所有文件
查找處理動作(action),默認為輸出至標準輸出
(1)查找(匹配)標準(選項):
->-name(嚴格區分大小寫查找) 'filename':對文件名做精確匹配
支持文件名通配
*->用來實現匹配任意長度的任意字符
?->用來實現匹配單個字符
[]->用來實現匹配指定范圍內的任意單個字符
->-iname:文件名匹配不區分大小寫
->-regex:基于正則表達式進行文件名查找
格式:-regex pattern
->-user:根據文件的屬主來進行文件的查找
格式:-user username
->-group:根據文件的屬組來進行文件的查找
格式:-group groupname
->-uid:根據uid查找,一旦某個用戶被刪除之后,此前所有屬于這個用戶的文件的屬主將變為這個用戶的id號
格式:-uid uid
->-gid:根據gid查找,一旦某個用戶的屬組被刪除之后,此前所有屬于這個用戶基本組的文件的屬組將變成這個用戶的基本組id號
格式:-gid gid
->-nouser:查找沒有屬主的文件
->-type:根據文件類型來查找文件
f:普通文件
d:目錄
c:字符設備
b:塊設備
l:鏈接文件
p:管道設備
s:套接字設備
->-size:根據文件大小來查找文件
[+|-]#:+表示大于,-表示小于,#表示數值大小(不加+|-表示等于),只寫#表示精確查找。
k表示KB
M表示MB
G表示GB
大小匹配的法則:精確查找時會有誤差,但是誤差一般小于1,且小于所要匹配的數值。
·組合條件查找,默認為邏輯與關系
->-a:邏輯與關系
->-o:邏輯或關系
->-not:邏輯非關系
練習:
1,查找/tmp目錄下,不是目錄且不是套接字類型的文件
2,查找/tmp/test目錄下,屬主不是user1,也不是user2的文件
·根據時間戳查找文件
時間為天數:
格式:
->-mtime [+|-]#:修改時間
->-ctime [+|-]#:改變時間
->-atime [+|-]#:訪問時間
->#表示距離現在的第#天有動作,+#表示距離現在的第#天之前有動作,-#表示距離現在的第#天之后有動作
時間為分鐘
格式:
->-mmin [+|-]#:修改時間
->-cmin [+|-]#:改變時間
->-amin [+|-]#:訪問時間
->#表示距離現在的第#分鐘有動作,+#表示距離現在的第#分鐘之前有動作,-#表示距離現在的第#分鐘之后有動作
·根據權限來查找
格式:
->-perm MODE:表示精確匹配
->-perm +MODE:三位權限任意一位匹配即滿足條件
->-perm -MODE:文件權限能完全包含此MODE才符合條件
(2)查找以后的處理動作(action):
默認為-print(顯示出來)
->-ls:類似于命令ls -l的形式顯示每一個文件的詳細信息
->-ok:-ok表示處理動作的每一步都需要用戶確認
固定格式:-ok COMMAND {} \;
花括號表示的是前面find命令查找到的文件名
->-exec:-exec的處理動作不需要用戶確認,一氣呵成
固定格式:-exec COMMAND {} \;
練習:
1,查找/var目錄下屬主為root并且屬組為mail的所有文件
2,查找/usr目錄下不屬于root、bin或student的文件
3,查找/etc目錄下最近一周內內容修改過且不屬于root及student用戶的文件
4,查找當前系統上沒有屬主或屬組且最近一天內曾被訪問過的文件,并將其屬主屬組均修改為root
5,查找/etc目錄下大于1M的文件,并將其文件名寫入/tmp/etc/largefiles
xargs方法:
6,查找/etc目錄下所有用戶都沒有寫權限的文件,顯示出其詳細信息
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。