第七課-第三講 07_03_Linux文件查找詳解

第七課-第三講 07_03_Linux文件查找詳解正則表達式

一. let 用法
I= 1
SUM=$[ $SUM+$I ] = let SUM+=$I = let SUM++
-= I-=1 至關於 I--
+= I+=1 至關於 I++
/=
%=數據庫

二. 文件查找ide

grep,egrep,fgrep:文本查找,查找文本的,查找字符串的ui

  1. locate 命令:全系統查找文件命令,非實時的,模糊匹配查找。他的查找是根據全系統文件數據庫進行的。優點是速度快
    updatedb 手動生成文件數據庫(系統咱們生成全但願文件數據庫時用到手動生成,不然locate命令沒法執行)
  2. find 實時查找,精確查找,速度慢,由於他遍歷指定目錄中的全部文件完成查找。支持不少查找標準,甚至支持用正則表達式匹配文件名查找

find 查找路徑(省略表示當前目錄) 查找標準 查找到之後的處理動做
查找路徑: 省略表示當前目錄,默認是當前目錄
查找標準: 默認是指定路徑下的全部文件
查找到之後的處理動做: 默認爲顯示到屏幕code

查找標準(匹配標準):
-name 'FILENAME'根據文件來查找,對文件名作精確匹配
-name '文件名通配符'( ? []) 此時是嚴格區分大小寫的
-iname '文件名通配符'(
? []) 此時是不區分大小寫的
-regex PATTERN 基於模式來顯示文件名查找字符串

-user USERNAME 根據文件的屬主進行查找
-group GROUPNAME 根據文件的屬主、組進行查找
-uid   根據uid查找(用戶被刪除後原來以該用戶爲屬主的文件的屬主都變成該用戶的id號,因此要此時要根據uid查找)
-gid   根據gid查找 

-nouser  查找沒有屬主的文件,用戶刪除後,以該用戶爲屬主的文件就變成了nouser文件
-nogroup  查找沒有屬組的文件

-type 
    f  普通文件
    d  目錄文件
    c  字符文件
    b  塊文件
    l  連接文件
    p  管道文件
    s  套接字文件

find /tmp -type dit

-size(不給單位默認單位是字節)
    [+|-]nk  +10k 大於10k  -10k小於 10k   10k 等於10k
    [+|-]nM
    [+|-]nG

find /etc -size 1M--size單位匹配查找法則:0.0M--1M 大小之間的都認爲是 1M
find /etc -size 10M--size單位匹配查找法則:9.0M--10M 大小之間的都認爲是 10Mclass

-time
-mtime 修改時間單位爲天 [+-]n 
-ctime 改變時間單位爲天 [+-]n
-atime 訪問時間單位爲天 [+-]n  -5 5天內訪問太小於5天, +5 至少5天沒訪問了大於5 ,5 恰好5天訪問過等於5天
-mmin  修改時間單位爲分鐘 [+-]n
-cmin  改變時間單位爲分鐘 [+-]n
-amin  訪問時間單位爲分鐘 [+-]n

-perm MODE   根據文件權限來查找,權限等於mode的值
-perm -MODE  每一位權限都必須精確匹配,文件權限能徹底包含此MODE是匹配成功並顯示。也就是3部分(ugo)文件rwx權限都要大於等於MODE時才匹配成功
-perm /MODE  9位權限中有一位匹配
-perm +MODE  同 -perm /MODE

三. 組合條件查找date

條件1 條件2 ---沒有指明2個條件關係是默認是 a ,也就是 與 條件
-a 與
-o 或
-not 非file

find /tmp -nouser -a -type d
find /tmp -not -type d 查找非目錄文件
find /tmp -not -type d -a -not -type s

四. find 的動做

-print 默認是顯示
-ls   相似 ls -l 的形式顯示每個文件的詳細信息
-ok COMMAND {} \; 反斜線合分號必須有。{} 表示引用find到的結果。  每次操做都須要用戶確認
-exec COMMAND {} \; 反斜線合分號必須有。{} 表示引用find到的結果。不須要確認

-xargs
find ./ -perm -020 -exec mv {} {}.new \;

xargs的用法(不須要 {} 應用,不須要 \;結尾)find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles \;find /etc -size +1M | xargs echo >> /tmp/etc.largefiles

相關文章
相關標籤/搜索