Linux運(yùn)維學(xué)習(xí)歷程-第十天-文件查找工具

概述:本篇主要講解locate命令和find命令,來幫助我們在linux中完成文件查找,方便我們快速定位文件。

為彭州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及彭州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、做網(wǎng)站、彭州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

一、文件查找

   即在文件系統(tǒng)上查找符合條件的文件,常用工具有l(wèi)ocate和find

 1、locate命令

   locate命令其實(shí)是find -name的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索查詢系統(tǒng)上預(yù)建的文件索引數(shù)據(jù)庫/var/lib/locatedb或者/var/lib/mlocate/mlocate.db,這個(gè)數(shù)據(jù)庫中含有本地所有文件信息。

   注意:Linux系統(tǒng)自動(dòng)創(chuàng)建這個(gè)數(shù)據(jù)庫,并且每天系統(tǒng)較為空閑時(shí)自動(dòng)進(jìn)行(周期性任務(wù))更新一次,所以使用locate命令查不到最新變動(dòng)過的文件。為了避免這種情況,可以在使用locate之前,先使用管理員手動(dòng)更新數(shù)據(jù)庫(updatedb手動(dòng)更新數(shù)據(jù)庫。同時(shí)由于更新構(gòu)建索引數(shù)據(jù)庫過程需要遍歷整個(gè)根文件系統(tǒng)中的文件,極消耗資源,所以更新此數(shù)據(jù)庫最好在系統(tǒng)空閑時(shí)。

locate工作特點(diǎn):

    依賴于事先構(gòu)建的索引/var/lib/mlocate/mlocate.db

    查找速度快(直接搜索數(shù)據(jù)庫)

    模糊查找(非精確匹配,含有關(guān)鍵字即符合條件)

    非實(shí)時(shí)查找(索引數(shù)據(jù)庫的構(gòu)建是非實(shí)時(shí)的,因此locate也不能實(shí)時(shí)查找)

    搜索的是文件的全路徑,不僅僅是文件名(以文件的絕對路徑為搜索內(nèi)容,同時(shí)即使使用-b選項(xiàng)也只是基名位置含有關(guān)鍵字即可)

    可能只搜索用戶具備讀取和執(zhí)行權(quán)限的目錄(用戶沒有對目錄讀與執(zhí)行權(quán)限就可能無法獲取該目錄下的文件列表信息,因而影響查找結(jié)果)

   locate [選項(xiàng)]... 模式...

     常用選項(xiàng):

       -A,--all           顯示與所有模式都匹配的條目而不是要求只有一個(gè)匹配    

      -b, --basename        匹配唯一的路徑名稱的基本文件名

      -c, --count          只顯示找到條目的數(shù)量

      -d, --database DBPATH   用DBPATH 替代默認(rèn)的數(shù)據(jù)庫(/var/lib/mlocate/mlocate.db)

       -i, --ignore-case        匹配模式時(shí)忽略大小寫區(qū)別     

       -r, --regexp REGEXP      搜索基本正則表達(dá)式 REGEXP 來代替模式

          --regex            模式是擴(kuò)展正則表達(dá)式

     拓展選項(xiàng):(了解)     

       -e, --existing        只顯示當(dāng)前存在的文件條目

      -L, --follow         當(dāng)文件存在時(shí)跟隨蔓延的符號鏈接 (默認(rèn))

      -l, --limit, -n LIMIT    限制為 LIMIT項(xiàng)目的輸出 (或 計(jì)數(shù)) 

      -m, --mmap            忽略向后兼容性

      -P, --nofollow, -H       當(dāng)檢查文件時(shí)不跟隨蔓延的符號鏈接

      -0, --null            輸出時(shí)以 NUL 分隔項(xiàng)目

      -S, --statistics        不搜索項(xiàng)目,顯示有關(guān)每個(gè)已用數(shù)據(jù)庫的統(tǒng)計(jì)信息

      -q, --quiet           不報(bào)告關(guān)于讀取數(shù)據(jù)庫的錯(cuò)誤消息    

      -s, --stdio           忽略向后兼容性

      -w, --wholename         匹配完整路徑名 (默認(rèn))

 

示例:

 匹配唯一的路徑名稱的基本文件名(含有關(guān)鍵字即可)

[root@localhost ~]# locate -b passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
...

只顯示找到條目的數(shù)量

[root@localhost ~]# locate -c passwd
148

使用正則表達(dá)式

[root@localhost ~]#   locate -r \.repo$
/etc/bash_completion.d/createrepo
/etc/bash_completion.d/mergerepo
/etc/bash_completion.d/modifyrepo
/etc/yum.repos.d/CentOS-Base.repo

2、find命令

  find命令用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時(shí),不設(shè)置任何參數(shù),則find命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示。

find工作特點(diǎn):

     通過遍歷指定路徑下文件系統(tǒng)層級結(jié)構(gòu)完成文件查找(默認(rèn)為當(dāng)前目錄下查找包括子目錄內(nèi)的所有文件);

    查找速度略慢(遍歷查找);

    精確查找(搜索文件名與查找條件匹配);

    實(shí)時(shí)查找(現(xiàn)用現(xiàn)找);

    可能只搜索用戶具備讀取和執(zhí)行權(quán)限的目錄(用戶沒有對目錄讀與執(zhí)行權(quán)限就可能無法獲取該目錄下的文件列表信息,因而影響查找結(jié)果);

  

 標(biāo)準(zhǔn)語法:find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]        

 簡化語法:find [OPTION] [查找路徑] [查找條件表達(dá)式] [處理動(dòng)作]

    查找路徑:指定具體目標(biāo)路徑;默認(rèn)為當(dāng)前目錄

    查找條件:指定的查找標(biāo)準(zhǔn),可以文件名、大小、類型、權(quán)限等標(biāo)準(zhǔn)進(jìn)行;默認(rèn)為找出指定路徑下的所有文件

    處理動(dòng)作:對符合條件的文件做操作,例如-ls 詳細(xì)顯示 -delete刪除等,默認(rèn)輸出至標(biāo)準(zhǔn)輸出屏幕;

     匹配測試:結(jié)果通常布爾型

     根據(jù)文件名與inode查找:支持glob風(fēng)格的通配符:*,?,[],[^]

              -name "pattern"

              -iname "pattern" :不區(qū)分字母大小寫            

              -inum n 按inode號查找

              -samefile name 相同inode號的文件

              -links n 鏈接數(shù)為n的文件

              -regex pattern:基于正則表達(dá)式查找文件,匹配的是整個(gè)路徑,而非文件名;

     根據(jù)文件從屬關(guān)系(屬主、屬組)查找:

             -user USERNAME:查找屬主為指定用戶(UID)的所有文件

             -group GRPNAME: 查找屬組為指定組(GID)的所有文件

             

             -uid UserID:查找屬主為指定的UID號的所有文件

             -gid GroupID:查找屬組為指定的GID號的所有文件

             

             -nouser:查找沒有屬主的文件

             -nogroup:查找沒有屬組的文件

     根據(jù)文件的類型查找:

           -type TYPE:

               f: 普通文件

               d: 目錄文件

               l: 符號鏈接文件

               s:套接字文件

               b: 塊設(shè)備文件

               c: 字符設(shè)備文件

               p: 管道文件

                       

      組合條件:

          與: -a,默認(rèn)組合邏輯

          或: -o

          非: -not, !

    德·摩根定律:在命題邏輯中存在著下面這些關(guān)系:

       (非 P) 或 (非 Q) = 非(P 且 Q)

       (非 P) 且 (非 Q) = 非(P 或 Q)

    示例:

        !A -a !B = !(A -o B)

Linux運(yùn)維學(xué)習(xí)歷程-第十天-文件查找工具

         !A -o !B = !(A -a B)

 Linux運(yùn)維學(xué)習(xí)歷程-第十天-文件查找工具

      根據(jù)文件大小來查找:

    -size [+|-]#UNIT

        常用單位: k, M, G

    #UNIT: (#-1, #]

        如: 10k 表示(9k,10k]

    -#UNIT: [0,#-1]

        如: -10k 表示[0,9k]

    +#UNIT: (#,∞)

        如: +10k 表示(10k,∞)

 

     根據(jù)時(shí)間戳查找:

    以“天”為單位;

      -atime [+|-]#,

        #: [#,#+1)

        +#: [#+1,∞]

        -#: [0,#)

      -mtime

      -ctime

    以“分鐘”為單位:

      -amin

      -mmin

      -cmin

    

     根據(jù)權(quán)限查找:

       -perm [/|-]MODE

        MODE: 精確權(quán)限匹配

        /MODE:任何一類用戶(u,g,o)對象的權(quán)限中任意一位(r,w,x)匹配即可;

                9位權(quán)限之間存在“或”關(guān)系; 

               +MODE形式  從centos7開始淘汰

        -MODE:每一類用戶(u,g,o)的權(quán)限中的每一位(r,w,x)都必須同時(shí)擁有指定權(quán)限;

                9位權(quán)限之間存在“與”關(guān)系;

        0 表示不關(guān)注

           eg:/002   -002    而且兩者效果一樣

舉例:

    find -perm 755 會匹配權(quán)限模式恰好是755的文件

    只要當(dāng)任意人有寫權(quán)限時(shí), find -perm +222就會匹配

    只有當(dāng)每個(gè)人都有寫權(quán)限時(shí), find -perm -222才會匹配

    只有當(dāng)其它人( other)有寫權(quán)限時(shí), find -perm -002才會匹配

處理動(dòng)作    

    -print:默認(rèn)的處理動(dòng)作,顯示至屏幕;

    -ls:類似于對查找到的文件執(zhí)行“ ls -l”命令

    -delete:刪除查找到的文件;

    -fls file:查找到的所有文件的長格式信息保存至指定文件中

    -ok COMMAND {} \; 對查找到的每個(gè)文件執(zhí)行由COMMAND指定的命令;(固定格式)

    對于每個(gè)文件執(zhí)行命令之前,都會交互式要求用戶確認(rèn)

eg:

[root@localhost ~]# find /etc -nouser -nogroup -ls
  6594    0 -rwxr-xrwx   1 1006     1006            0 8月 20 15:13 /etc/rc.d/init.d/test
[root@localhost ~]# find /etc -nouser -nogroup -ok chown root:root {} \;
< chown ... /etc/rc.d/init.d/test > ? y

    -exec COMMAND {} \; 對查找到的每個(gè)文件執(zhí)行由COMMAND指定的命令(固定格式)

eg:

[root@localhost init.d]# find ./ -perm -656
./test
[root@localhost init.d]# find ./ -perm -656 -exec mv {} {}.danger \;
[root@localhost init.d]# ll
總用量 92
-rw-r--r--. 1 root root 13948 9月  16 2015 functions
-rwxr-xr-x. 1 root root  2989 9月  16 2015 netconsole
-rwxr-xr-x. 1 root root  6630 9月  16 2015 network
-rw-r--r--. 1 root root  1160 11月 20 2015 README
-rwxr-xrwx. 1 root root     0 8月  20 15:13 test.danger
-rwxr-xr-x. 1 root root 44264 7月  25 22:00 vmware-tools
-rwxr-xr-x. 1 root root 15721 7月  25 22:00 vmware-tools-thinprint

{}: 用于引用查找到的文件名稱自身

    find傳遞查找到的文件至后面指定的命令時(shí),查找到所有符合

    條件的文件一次性傳遞給后面的命令

    有些命令不能接受過多參數(shù),此時(shí)命令執(zhí)行可能會失敗,下面方式可規(guī)避此問題

    find | xargs COMMAND

意為:find 命令查找結(jié)果以管道 | 傳給后接的 xargs命令 再接接受find標(biāo)準(zhǔn)輸出的命令

xargs:建立和執(zhí)行來自標(biāo)準(zhǔn)輸入的命令行

xargs命令是給其他命令傳遞參數(shù)的一個(gè)過濾器,也是組合多個(gè)命令的一個(gè)工具。它擅長將標(biāo)準(zhǔn)輸入數(shù)據(jù)轉(zhuǎn)換成命令行參數(shù),xargs能夠處理管道或者stdin并將其轉(zhuǎn)換成特定命令的命令參數(shù)。xargs也可以將單行或多行文本輸入轉(zhuǎn)換為其他格式,例如多行變單行,單行變多行。xargs的默認(rèn)命令是echo,空格是默認(rèn)定界符。這意味著通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。xargs是構(gòu)建單行命令的重要組件之一。

    主要參數(shù)

        -i 用 {} 代替 傳遞的數(shù)據(jù)

        -I string 用string來代替?zhèn)鬟f的數(shù)據(jù)-n[數(shù)字] 設(shè)置每次傳遞幾行數(shù)據(jù)

        -n 選項(xiàng)限制單個(gè)命令行的參數(shù)個(gè)數(shù)

        -t 顯示執(zhí)行詳情

        -p 交互模式

        -P n 允許的最大線程數(shù)量為n

        -s[大小] 設(shè)置傳遞參數(shù)的最大字節(jié)數(shù)(小于131072字節(jié))

        -x 大于 -s 設(shè)置的最大長度結(jié)束 xargs命令執(zhí)行

    

xargs命令用法 

xargs用作替換工具,讀取輸入數(shù)據(jù)重新格式化后輸出。 

定義一個(gè)測試文件,內(nèi)有多行文本數(shù)據(jù): 

cat test.txt 
a b c d e f g 
h i j k l m n 
o p q 
r s t 
u v w x y z

多行輸入單行輸出: 

cat test.txt | xargs 
a b c d e f g h i j k l m n o p q r s t u v w x y z

-n選項(xiàng)多行輸出: 

cat test.txt | xargs -n3 
a b c 
d e f 
g h i 
j k l 
m n o 
p q r 
s t u 
v w x 
y z

-d選項(xiàng)可以自定義一個(gè)定界符: 

echo "nameXnameXnameXname" | xargs -dX

name name name name 

結(jié)合-n選項(xiàng)使用: 

echo "nameXnameXnameXname" | xargs -dX -n2

name name 

name name 

讀取stdin,將格式化后的參數(shù)傳遞給命令 

假設(shè)一個(gè)命令為 sk.sh 和一個(gè)保存參數(shù)的文件arg.txt: 

#!/bin/bash 
#sk.sh命令內(nèi)容,打印出所有參數(shù)。 
echo $* 
arg.txt文件內(nèi)容: 
cat arg.txt 
aaa 
bbb 
ccc

xargs的一個(gè)選項(xiàng)-I,使用-I指定一個(gè)替換字符串{},這個(gè)字符串在xargs擴(kuò)展時(shí)會被替換掉,當(dāng)-I與xargs結(jié)合使用,每一個(gè)參數(shù)命令都會被執(zhí)行一次: 

cat arg.txt | xargs -I {} ./sk.sh -p {} -l 
-p aaa -l 
-p bbb -l 
-p ccc -l

復(fù)制所有圖片文件到 /data/p_w_picpaths 目錄下: 

ls *.jpg | xargs -n1 -I cp {} /data/p_w_picpaths

xargs結(jié)合find使用 

用rm 刪除太多的文件時(shí)候,可能得到一個(gè)錯(cuò)誤信息:/bin/rm Argument list too long. 用xargs去避免這個(gè)問題: 

find . -type f -name "*.log" -print0 | xargs -0 rm -f

xargs -0將\0作為定界符。 

統(tǒng)計(jì)一個(gè)源代碼目錄中所有php文件的行數(shù): 

find . -type f -name "*.php" -print0 | xargs -0 wc -l

查找所有的jpg 文件,并且壓縮它們: 

find . -type f -name "*.jpg" -print | xargs tar -czvf p_w_picpaths.tar.gz xargs

其他應(yīng)用 假如你有一個(gè)文件包含了很多你希望下載的URL,你能夠使用xargs下載所有鏈接: 

cat url-list.txt | xargs wget -c

子Shell(Subshells) 運(yùn)行一個(gè)shell腳本時(shí)會啟動(dòng)另一個(gè)命令解釋器.,就好像你的命令是在命令行提示下被解釋的一樣,類似于批處理文件里的一系列命令。每個(gè)shell腳本有效地運(yùn)行在父shell(parent shell)的一個(gè)子進(jìn)程里。這個(gè)父shell是指在一個(gè)控制終端或在一個(gè)xterm窗口中給你命令指示符的進(jìn)程。 

cmd1 | ( cmd2; cmd3; cmd4 ) | cmd5 

如果cmd2 是cd /,那么就會改變子Shell的工作目錄,這種改變只是局限于子shell內(nèi)部,cmd5則完全不知道工作目錄發(fā)生的變化。

子shell是嵌在圓括號()內(nèi)部的命令序列,子Shell內(nèi)部定義的變量為局部變量。 子shell可用于為一組命令設(shè)定臨時(shí)的環(huán)境變量: 

COMMAND1 

COMMAND2 

COMMAND3 

   IFS=: 

   PATH=/bin 

   unset TERMINFO 

   set -C 

   shift 5 

   COMMAND4 

   COMMAND5 

   exit 3      # 只是從子shell退出。 

)

# 父shell不受影響,變量值沒有更改。 

COMMAND6 

COMMAND7

練習(xí)示例:

精確查找對應(yīng)文件名文件

[root@localhost ~]# find /etc -name "passwd"
/etc/passwd
/etc/pam.d/passwd

根據(jù)文件或者正則表達(dá)式進(jìn)行匹配 

列出當(dāng)前目錄及子目錄下所有文件和文件夾 

find .

在/home目錄下查找以.txt結(jié)尾的文件名

find /home -name "*.txt"

同上,但忽略大小寫 

find /home -iname "*.txt"

當(dāng)前目錄及子目錄下查找所有以.txt和.pdf結(jié)尾的文件

find . \( -name "*.txt" -o -name "*.pdf" \) 或 find . -name "*.txt" -o -name "*.pdf"

匹配文件路徑或者文件 

find /usr/ -path "*local*"

基于正則表達(dá)式匹配文件路徑 

find . -regex ".*\(\.txt\|\.pdf\)$"

同上,但忽略大小寫 

find . -iregex ".*\(\.txt\|\.pdf\)$"

否定參數(shù) 找出/home下不是以.txt結(jié)尾的文件 

find /home ! -name "*.txt"

根據(jù)文件類型進(jìn)行搜索 

find . -type 類型參數(shù) 

    類型參數(shù)列表: 

    f 普通文件 

    l 符號連接 

    d 目錄 

    c 字符設(shè)備 

    b 塊設(shè)備 

    s 套接字 

    p FIFO 

基于目錄深度搜索 向下最大深度限制為3 

find . -maxdepth 3 -type f

搜索出深度距離當(dāng)前目錄至少2個(gè)子目錄的所有文件

find . -mindepth 2 -type f

根據(jù)文件時(shí)間戳進(jìn)行搜索 

find . -type f 時(shí)間戳 

UNIX/Linux文件系統(tǒng)每個(gè)文件都有三種時(shí)間戳: 

    訪問時(shí)間(-atime/天,-amin/分鐘):用戶最近一次訪問時(shí)間。 

    修改時(shí)間(-mtime/天,-mmin/分鐘):文件最后一次修改時(shí)間。 

    變化時(shí)間(-ctime/天,-cmin/分鐘):文件數(shù)據(jù)元(例如權(quán)限等)最后一次修改時(shí)間。 

搜索最近七天內(nèi)被訪問過的所有文件 

find . -type f -atime -7

搜索恰好在七天前被訪問過的所有文件 

find . -type f -atime 7

搜索超過七天內(nèi)被訪問過的所有文件 

find . -type f -atime +7

搜索訪問時(shí)間超過10分鐘的所有文件 

find . -type f -amin +10

找出比file.log修改時(shí)間更長的所有文件 

find . -type f -newer file.log

根據(jù)文件大小進(jìn)行匹配 

find . -type f -size 文件大小單元 

文件大小單元: 

    b —— 塊(512字節(jié)) 

    c —— 字節(jié) 

    w —— 字(2字節(jié)) 

    k —— 千字節(jié) 

    M —— 兆字節(jié) 

    G —— 吉字節(jié) 

搜索大于10KB的文件 

find . -type f -size +10k

搜索小于10KB的文件 

find . -type f -size -10k

搜索等于10KB的文件 

find . -type f -size 10k

刪除匹配文件 

刪除當(dāng)前目錄下所有.txt文件 

find . -type f -name "*.txt" -delete

根據(jù)文件權(quán)限/所有權(quán)進(jìn)行匹配 當(dāng)前目錄下搜索出權(quán)限為777的文件 

find . -type f -perm 777

找出當(dāng)前目錄下權(quán)限不是644的php文件 

find . -type f -name "*.php" ! -perm 644

找出當(dāng)前目錄用戶tom擁有的所有文件 

find . -type f -user tom

找出當(dāng)前目錄用戶組sunk擁有的所有文件 

find . -type f -group sunk

借助-exec選項(xiàng)與其他命令結(jié)合使用 找出當(dāng)前目錄下所有root的文件,并把所有權(quán)更改為用戶tom 

find .-type f -user root -exec chown tom {} \;

上例中,{} 用于與-exec選項(xiàng)結(jié)合使用來匹配所有文件,然后會被替換為相應(yīng)的文件名。 

找出自己家目錄下所有的.txt文件并刪除 

find $HOME/. -name "*.txt" -ok rm {} \;

上例中,-ok和-exec行為一樣,不過它會給出提示,是否執(zhí)行相應(yīng)的操作。 

查找當(dāng)前目錄下所有.txt文件并把他們拼接起來寫入到all.txt文件中 

find . -type f -name "*.txt" -exec cat {} \;> all.txt

將30天前的.log文件移動(dòng)到old目錄中 

find . -type f -mtime +30 -name "*.log" -exec cp {} old \;

找出當(dāng)前目錄下所有.txt文件并以“File:文件名”的形式打印出來 

find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;

因?yàn)閱涡忻钪?exec參數(shù)中無法使用多個(gè)命令,以下方法可以實(shí)現(xiàn)在-exec之后接受多條命令 -exec ./text.sh {} \; 搜索但跳出指定的目錄 查找當(dāng)前目錄或者子目錄下所有.txt文件,但是跳過子目錄sk 

find . -path "./sk" -prune -o -name "*.txt" -print

find其他技巧收集 

要列出所有長度為零的文件 

find . -empty

二、作業(yè)練習(xí):

1、查找/var目錄下屬主為root,且屬組為mail的所有文件

[root@localhost ~]# find /var -user root -group mail
/var/spool/mail
/var/spool/mail/root

2、查找/var目錄下不屬于root、lp、gdm的所有文件

find /var  -not \( -user root -o -user lp -o -user gdm \)

3、查找/var目錄下最近一周內(nèi)其內(nèi)容修改過,同時(shí)屬主不為root,也不是postfix的文件

find /var -mtime -7 -not \( -user root -a -user postfi \)

4、查找當(dāng)前系統(tǒng)上沒有屬主或?qū)俳M,且最近一個(gè)周內(nèi)曾被訪問過的文件

find / -atime -7 -not \( -nouser  -a -nogroup  \)

5、查找/etc目錄下大于1M且類型為普通文件的所有文件

find /etc \( -size +1M -type f \) -ls

6、查找/etc目錄下所有用戶都沒有寫權(quán)限的文件

find /etc -not -perm /222 -ls

7、查找/etc目錄下至少有一類用戶沒有執(zhí)行權(quán)限的文件

find /etc -not -perm -111 -ls

8、查找/etc/init.d目錄下,所有用戶都有執(zhí)行權(quán)限,且其它用戶有寫權(quán)限的文件

find /etc/init.d/ -perm -111 -perm /002 -ls

9、查找/tmp目錄下屬主為非root的所有文件;

[root@localhost ~]# find /tmp ! -user root
[root@localhost ~]# find /tmp -not -user root

10、查找/tmp目錄下文件名中不包含fstab字符串的文件;

[root@localhost ~]# find /tmp ! -iname "*fstab*"
[root@localhost ~]# find /tmp -not -iname "*fstab*"

11、查找/tmp目錄下屬主為非root,而且文件名中不包含fstab字符串的文件;

find /tmp ! -user root ! -iname "*fstab*"
find /tmp ! -user root -a ! -iname "*fstab*"
find /tmp -not -user root -a -not -iname "*fstab*"
find /tmp ! \( -user root -o -not -iname \) "*fstab*"
find /tmp -not \( -user root -o -not -iname \) "*fstab*"

當(dāng)前題目:Linux運(yùn)維學(xué)習(xí)歷程-第十天-文件查找工具
標(biāo)題網(wǎng)址:http://bm7419.com/article34/pcicpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、關(guān)鍵詞優(yōu)化、App開發(fā)、商城網(wǎng)站、網(wǎng)站策劃、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)