文件查找

文件查找

 

 

一.文件查找locatefind

1.     locate命令

非實時查找( 數據庫查找)

查詢系統上預建的文件索引數據庫

依賴于事先構建 的索引

索引的構建是在系統較為空閑時自動進行( 周期性
任務) 管理員手動更新數據庫(updatedb)

索引構建過程需要遍歷整個根文件系統,極
消耗資源

2.       locate的特點

n  查找 速度 快

n  模糊 查找

n  非實時查找

n  搜索的是文件的全路徑,不僅僅是文件名

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

3.       locate的用法

-i 不區分大小寫的搜索

? -n N 只列舉前N 個匹配項目

? locate conf

搜索名稱或路徑中帶有“conf
的文件

? locate -r ‘\.conf$’

使用Regex 來搜索以“.conf ”結尾的文件

               例如:查找以后綴為.Log的文件

                             [root@localhost ~]#  Locate  
–I   .log

                               /var/log/gdm/:0-slave.lo

/var/log/gdm/:0.log

/var/log/gdm/:0.log.1

只列出部分結果,結果太多了

查找前五行以.log結尾的文件

[root@localhost ~]# locate -i -n5 .log

/etc/csh.login

/root/.imsettings.log

/root/install.log

/root/install.log.syslog

/root/.cache/mozilla/firefox/w5xc6vnw.default/cache2/index.log

二.         Find命令

1.       find命令的特點

n  查找速度略慢

n  精確查找

n  實時查找

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

          2. 語法:

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

查找路徑:指定具體目標路徑;默認為當前目錄

查找條件:指定的查找標準,可以文件名、大小、類型、

權限等標準進行;默認為找出指定路徑下的所有文件

處理動作:對符合條件的文件做操作,默認輸出至屏幕

2.       選項

-type TYPE:

? f:  普通文件

? d:  目錄文件

? l:  符號鏈接文件

? s :套接字文件

? b:  塊設備文件

? c:  字符設備文件

? p: 管道文件

            3     -maxdepth level 最大搜

-minxdepth level  最小搜索深度

-name 基于名稱的精確查找

-iname 基于名稱忽略大小寫的精確查找查找

-inum 基于inode查找

-samefile 基于相同inode號的查找(查找硬鏈接)

-links n 硬鏈接為n的文件 

-regex 支持正則 默認為(emacs標準)

-regextype egrep -regex 支持egrep同標準的正則 

-user 用戶名  基于文件owner的查找

-group 組名 基于文件group

-uid userid 基于文件uid的查找

-gid groupid 基于文件gid的查找

-nouser 查找沒有owner的文

-nogroup 查找沒有group的文件

-type 基于文件類型的查找

  4 例子

  1.   找出/tmp 目錄下,屬主是root ,且文件名 不以f 開頭的

/etc/lsb-release.d/base-4.0-amd64

1836489    0 -rw-r–r–   1 root    
root            0 Feb 22  2013 /etc/lsb-release.d/printing-4.0-amd64

1836491    0 -rw-r–r–   1 root    
root            0 Feb 22  2013 /etc/lsb-release.d/graphics-4.0-amd64

1836490    0
-rw-r–r–   1 root     root            0 Feb 22  2013 /etc/lsb-release.d/printing-4.0-noarch

1835855    4 -rw-r–r–   1 root    
root          212 Mar 23 02:12
/etc/statetab

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

find /etc \(–path
‘/etc/sane.d’ –o –path ’/etc/fonts’ \)

/etc/lsb-release.d/base-4.0-noarch

/etc/lsb-release.d/core-4.0-noarch

/etc/lsb-release.d/graphics-4.0-noarch

/etc/lsb-release.d/core-4.0-amd64

/etc/lsb-release.d/base-4.0-amd64

/etc/lsb-release.d/printing-4.0-amd64

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

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

/var/spool/mail

/var/spool/mail/hyma

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

[root@localhost
~]# find /var -not \( -user root -o -user lp -o -user gdm \)

/var/lib/pulse

/var/lib/dav

/var/lib/nfs/statd

/var/lib/nfs/statd/sm

/var/lib/nfs/statd/sm.bak

/var/lib/nfs/state

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

[root@localhost
~]# find /var -mtime -7 -a -not -user root -not -user postfix -ls

1180965    4 dr-x–x–x   2 lp      
sys          4096 Aug 11 07:50 /var/run/cups/certs

1181672    4 -rw-r–r–   1 rpcuser 
rpcuser         5 Aug 11 07:50
/var/run/rpc.statd.pid

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

[root@localhost
~]# find /etc -size +1M -a -type f

/etc/selinux/targeted/modules/active/policy.kern

/etc/selinux/targeted/policy/policy.24

/etc/gconf/gconf.xml.defaults/%gconf-tree.xml

7. 查找/etc目錄下所有用戶都沒有寫權限的文件

[root@localhost
~]# find /etc -not -perm  /222 -ls|head
-20|tail -10

1837075    4 -r–r–r–   1 root    
root          338 Feb 22  2016 /etc/lvm/profile/cache-smq.profile

1837259    4 -r–r—–   1 root    
root         3729 Dec  8  2015
/etc/sudoers

1835989    4 -r-xr-xr-x   1 root    
root         1362 Mar 23 07:25
/etc/rc.d/init.d/blk-availability

1837081    4 -r-xr-xr-x   1 root    
root         3045 Mar 23 07:25
/etc/rc.d/init.d/lvm2-monitor

1837080    4 -r-xr-xr-x   1 root    
root         2137 Mar 23 07:25

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

[root@localhost
~]# find /etc -not -perm  111 -ls |head
-10

1835009   12 drwxr-xr-x 119 root     root 
      12288 Aug 11 15:41 /etc

1835687    4 -rw-r–r–   1 root    
root           20 Mar 10  2015 /etc/fprintd.conf

1835141    4 -rw-r–r–   1 root    
root          111 May 11  2016 /etc/magic

1835898    4 drwxr-xr-x   2 root    
root         4096 Mar 23 02:12
/etc/sysctl.d

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

[root@localhost
~]# find /etc -perm -113 -ls |head -10

1835370    0 lrwxrwxrwx   1 root    
root           26 Jul  4 19:19
/etc/X11/fontpath.d/xorg-x11-fonts-Type1 -> /usr/share/X11/fonts/Type1

1836589    0 lrwxrwxrwx   1 root    
root           29 Jul  4 19:23
/etc/X11/fontpath.d/cjkuni-fonts-uming -> /usr/share/fonts/cjkuni-uming

1835030    0 lrwxrwxrwx   1 root    
root           27 Jul  4 19:17 /etc/X11/fontpath.d/liberation-fonts
-> /usr/share/fonts/liberation

1837292    0 lrwxrwxrwx   1 root    
root           27 Jul  4 19:25
/etc/X11/fontpath.d/xorg-x11-fonts-100dpi:unscaled:pri=30 ->
/usr/share/X11/fonts/100dpi

1837262    0 lrwxrwxrwx   1 root    
root           25 Jul  4 19:24

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

(1)
TouchTouch
上一篇 2017-08-12 17:45
下一篇 2017-08-12 20:28

相關推薦

  • 馬哥教育網絡班21期-第二周課程練習

    第二周課程練習 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示?     1.1 目錄管理類命令:cd,pwd,ls,mkdir,rmdir,tree          1.1.1 cd:主要功能是改變當前目錄,…

    Linux干貨 2016-07-04
  • ansible學習筆記之1

    ansible學習筆記之1 ansible學習筆記之1 ansible 基礎 ad-hoc 基礎概念 ansible學習筆記之1 說說運維工具的類型 > 運維工具按是否需要有代理程序來劃分分為兩類:      agent(需要代理工具):          基于專用的age…

    2016-11-21
  • Linux三劍客之grep

    grep(Globel Search Regular Expression and Printing out the line)全面搜索正則表達式并把行打印出來)是一個強大的文本搜索工具,使用正則表達式搜索文本的文本,并把結果打印出來。Unix家族包括grep、egrep和fgrep。egrep是擴張的正則表達式它支持更多的字符,fgrep是fast gre…

    Linux干貨 2016-08-12
  • Linux軟件包管理與實例

    Linux系統的早期,編譯是利用程序代碼生成可執行文件的過程的手動編譯。雖具有一定優勢,但是專業知識要求高,不利于實際操作。因此出現了許多軟件包管理器,最具代表的是由Red Hat 推出的RPM。Yum則有利于解決linux安裝軟件時的依賴性。 所謂依賴性,就是linux系統中的軟件將不同的功能模塊單獨寫入到不同的軟件包中,最后將多個相互依存的軟件包結合起來…

    2017-08-13
  • grep與正則表達式

    一、grep        grep常用于文本搜索。通過自定義的模式(pattern),篩選出使用者需要的文本內容。除了有grep,還有egrep和fgrep。其中egrep = grep  –E,而fgrep則是不支持正則表達式。     &nbs…

    2017-07-29
  • N22-第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。      2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為…

    Linux干貨 2016-09-05
欧美性久久久久