文件查找命令Find

文件查找命令find

Find:在文件上查找符合條件的文件,是個實時的查找工具,通過遍歷指定路徑完成文件查找

blob.png


工作特點:

查找速度慢

精度查找

實時查找

可能只搜索用戶具有讀取和執行權限的目錄

 

語法:

find [option]…[查找路徑][查找條件][處理動作]

 

查找條件:

-name “文件名稱:支持使用glob *,?,[],[^]

-iname “文件名稱:忽略大小寫

blob.png

-inum n:按照節點號查找

-samefile name:相同節點號的文件

-links n:鏈接數為n的文件

-regex ”PATTERN“:以pattern匹配整個文件路徑字符串,而不僅僅是文件名稱

-user 查找屬主為指定的用戶(uid)的文件

blob.png

-group 查找屬組為指定的用戶組(gid)的文件

-uid 查找屬主為指定的uid號的文件

-gid 查找屬組為指定gid號的文件

-nouser 查找沒有屬主的文件

-nogroup 查找沒有屬組的文件

blob.png

 

查找條件

-type TYPE

f 普通文件

d 目錄文件

l 符號鏈接文件

s 套接字文件

b 塊設備文件

c 字符設備文件

p 管道文件

blob.png

 

查找條件

組合查找:

與: -a

或: -o

非: -not ,!

 blob.png

 

.摩根定律

(非 P)或(非 Q= 非(PQ

(非 P)且(非 Q= 非(PQ

示例

!P –a !Q = !(P –o Q)

!P –o !Q = !(P –a Q)

blob.png

非P或非Q 表明這兩者只要有一個為非就可以滿足條件,它的所有情況是

1.非P 真Q

2 真P 非Q

3 非P 非Q

這三種情況否符合非P或非Q,那么它的反面就是

真P且真Q,那么上述三種情況就可以直接表示為

取真P且真Q的補集,也就是不是真P且真Q的情況

則可以表示為 !(真P且真Q)即非(真P且真Q)

同樣,非P且非Q就可以表示為!(真P或真Q)即非(真P或真Q)


find /tmp \( -not –user root –a –not –name “f*” \) –ls

find /tmp –not \( -user root –o –name “f*” \) –ls

 

查找/etc目錄下,除/etc/sane.d目錄的其他所有.conf后綴的文件

find /etc/ -path “/etc/sane.d” –a –prune –o –name “*.conf” –print

   


根據文件大小查找

-size +|-#num

常用單位 K M G

#num: (#-1,#]

-#num:[0,#-1]

+#num:(#,正無窮)

blob.png 

以時間為單位

-atime [+|-]#

#:[#,#+1)

+#:[#+1,正無窮)

-#:[0,#)

 

-mtime

-ctime

 

根據權限查找

-perm [-|/]MODE

mode:精確權限匹配

/mode:任何一類(u,g,o)對象的權限中只要能一位匹配即可,或關系,Centos7中舍棄了+

-mode:每一類對象都必須同時擁有指定的權限,與關系

0:表示不關注

 blob.png

排除/root目錄下的.mozilla目錄,然后查找文件中ugo任意一位有執行權限的文件并顯示出來


blob.png

排除/root目錄下的.mozilla目錄,然后查找文件中ugo三者都有執行權限的文件,這三者條件必須都滿足的才能被匹配,否則不匹配


blob.png

只看組g有沒有執行的權限,有就滿足匹配,其他的u,o不考慮


find -perm 755 匹配權限為755的文件,其他文件不匹配

find -perm /222 u,g,o中任意一個有寫權限該文件就能匹配

find -perm -222 只有文件中u,g,o權限位都有寫權限的文件才可以被匹配

find -perm -002 文件中只要其他人有寫權限,該文件就可以被匹配

 

處理動作

-print 默認處理動作,輸出至屏幕

-ls 類似于對查找到的文件執行那個ls -l命令

-delete 刪除查找到的文件

-fls file 查找到的文件以長格式形式保存到指定文件中

-ok command {} \; 對查找到的文件執行由command指定的命令

-exec command {} \; 對查找到的文件執行command指定的命令

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

有些命令不能接受過多參數,此時命令執行會失敗,可以使用

find | xargs command

blob.png 

注:{}表示的是完整的文件路徑,所有如果要備份到其他目錄要注意路徑的正確書寫


find –name “.conf” –exex cp {} {}.org \;

備份含有.conf字符串的文件,備份的名稱后綴加上.org擴展名

find /data –type f –perm 644 –name “*.sh” –exec chmod 755 {} \;

找出data目錄下包含.sh字符串的權限是644的普通文件,并將這些文件賦予755的權限

find /home –type d –ls

找出家目錄下所有的目錄并顯示

習題

1、寫一個腳本/root/bin/createuser.sh,實現如下功能:使用一個用戶名做為參數,如果指定參數的用戶存在,就顯示其存在,否則添加之;顯示添加的用戶的id號等信息

blob.png

blob.png

?2、寫一個腳本/root/bin/yesorno.sh,提示用戶輸入yes或no,并判斷用戶輸入的是yes還是no,或是其它信息

blob.png

blob.png  

?3、寫一個腳本/root/bin/filetype.sh,判斷用戶輸入文件路徑,顯示其文件類型(普通,目錄,鏈接,其它文件類型)

blob.png

blob.png

?4、寫一個腳本/root/bin/checkint.sh,判斷用戶輸入的參數是否為正整數

blob.pngblob.png

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

blob.png

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

blob.png

?7、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件

blob.png

?8、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件

blob.png

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

blob.png

?10、查找/etc目錄下所有用戶都沒有寫權限的文件

blob.png

?11、查找/etc目錄下至少有一類用戶沒有執行權限的文件

blob.png

blob.png

?12、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件

blob.png

原創文章,作者:Stupid_L,如若轉載,請注明出處:http://www.www58058.com/36033

(0)
Stupid_LStupid_L
上一篇 2016-08-16
下一篇 2016-08-16

相關推薦

  • 磁盤分區磁盤管理及掛載

    磁盤分區 fdisk提供交互式接口管理分區,操作均在內存中完成,沒有直接同步到磁盤;直到使用w命令保存至磁盤中。 語法: 1.查看分區使用信息:     fdisk -l [-u] [device…]:列出指定磁盤設備上的分區情況; 2.管理分區    fdisk d…

    Linux干貨 2016-08-31
  • bash之運算、測試、if語句及for循環語句

      一、邏輯運算         布爾運算:真、假         與運算:                 真 && 真 = 真       …

    Linux干貨 2015-05-25
  • DNS快速入門、正反向解析……

    DNS服務原理詳解 因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析。 我們在訪問一個網站的時候,只要輸入該網站的網址就會跳轉到該網站頁面,而實現這一過程就需要DNS服務器將域名解析為IP地址,進而實現數據通信。 DNS:…

    2017-06-03
  • 激情的魅力samba服務(熱舞篇)

    正如名稱一樣的迷人的一個服務,充滿了激情。火熱的天氣中更添加一分悸動,本章就嘗試對下面火熱的samba服務是要如何破解并掌握于手心中。(本篇當中借鑒了鳥哥私房菜和linux就該這么學還有傳說中的中華小題庫,通過做題來對于samba進行初步的了解)后續還會添加一篇關于samba服務的文章,作為深度了解。 首先了解下samba的來源,聽說作者老道(Tridgwe…

    Linux干貨 2017-08-19
  • LVS之nat&dr

    Evernote Export 負載均衡集群設計時的要點:        (1)session保持            session sticky(ip hash)            sess…

    Linux干貨 2016-12-01
  • 第十周:Linux系統啟動流程及shell腳本練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 一張圖足以說明一切: 2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;   (1) 為硬盤新建兩個主分區;并為其安裝grub;   (2) 為硬盤的第一個主分區提供內核和ramdisk文件;為第二個分區提供rootfs;   (3)…

    Linux干貨 2016-11-30
欧美性久久久久