歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 文件查找之locate與find

文件查找之locate與find

日期:2017/3/3 12:22:15   编辑:Linux技術

slocate:

語法:slocate [關鍵字段]

locate [關鍵字段]

說明:所有文件名及其所在路徑包含關鍵字段的文件與目錄都會顯示。slocate先將當前目錄結構做成一個數據庫,然後在此數據庫中搜索匹配記錄,因此它比find命令的搜索速度更快。

--生成數據庫的命令:updatedb。輸入updatedb命令後,在var/lib/mlocate 中生成mlocate.db.

find:

語法:find 【路徑】【參數】【表達式】說明:從指定路徑下遞歸向下搜索文件,在不指定查找目錄的情況下是對整個系統遍歷查找。

支持按照各種條件方式搜索,功能強大。

支持對搜素得到的文件進一步用命令操作。

常用參數如下:根據文件屬性查找

-user:根據文件擁有者尋找文件

-group:根據文件所屬組尋找文件

-name:根據文件名尋找文件;-iname:不區分大小寫

-uid:根據uid查找文件

-gid:根據gid查找文件 eg: find /tmp -gid 1000 查找gid是1000的文件

-perm:根據文件權限尋找文件

+:滿足其中的一位就可匹配 -:只指定權限為1的位,其他位不作要求.

eg:

find / -perm 755 查找根目錄下權限是755的文件

find / -perm +222 表示只要有一類用戶(屬主,屬組,其他)匹配寫權限就行.

find / -perm +6 只要 其他 中的讀或寫權限為1. eg:--- --- 100、--- --- 010、--- ---110.

find / -perm -222 表示必須所有類別用戶都滿足有寫權限,第二位必須為1.

-size:根據文件大小尋找文件

eg:

find /tmp -size 2M 查找在/tmp目錄下等於2M的文件

find /tmp -size +2M 查找在/tmp目錄下大於2M的文件

find /tmp -size -2M 查找在/tmp目錄下小於2M的文件

-type x:根據文件類型尋找文件

x參數對應:b--塊設備文件,c--字符設備文件,d--目錄文件,l--符號鏈接文件,p--命名管道,f--普通文件,s--socket文件

根據時間查找(可以使用stat命令來查看文件的時間信息):-amin n 查找n分鐘以前被訪問過的所有文件

-atime n 查找n天以前被訪問過的所有文件

-cmin n 查找n分鐘以前文件狀態被修改過的所有文件

-ctime n 查找n天以前文件狀態被修改過的所有文件

-mmin n 查找n分鐘以前文件內容被修改過的所有文件。

-mtime n 查找n天以前文件內容被修改過的所有文件。

eg:

find /tmp –atime +5 //表示查找在五天內沒有訪問過的文件

find /tmp -atime -5 //表示查找在五天內訪問過的文件

表達式通配符:find的表達式使用通配符時需使用“”。

*: 表示通配任意的字符。

?:表示通配任意的單個字符。

[]:表示通配括號裡的任意一個字符。

-a,-o,-not的使用:

-a:連接兩個不同的條件(兩個條件同時滿足)。

-o:連接兩個不同的條件(兩個條件滿足其一)。

-not:滿足對條件取反的條件

操作找到的文件

語法:find 【路徑】【參數】【表達式】-exec 命令 {} \;

說明: 直接對符合條件的文件執行所給的命令,不詢問用戶是否需要執行。

{}表示命令的參數即為find找到的文件。

\禁止轉義

;表示本行命令結束。

語法:find 【路徑】【參數】【表達式】-ok 命令 {} \;

說明:會詢問用戶是否需要執行該命令。

-ls:列出所找到的所有文件

-fprintf 文件名: 將找到的文件名寫入指定文件

-printf:在標准輸出設備上顯示查找到的文件名(默認情況下的操作)

Copyright © Linux教程網 All Rights Reserved