文件查找
一.文件查找locate和find
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