RHCE-find,locate

locate
locate
根据locate数据库中的文件名或路径返回搜索结果。该数据库存储文件名和路径信息以普通用户搜索条目时,调用locate搜索的用户必须对包含匹配元素的目录树拥有读取权限,才能返回结果locate数据库每日自动更新。使用updatedb可手动更新
实例:
搜索名称或路径包含“ passwd”的文件
locate passwd
部分匹配也会返回结果
locate image选项:
-i:不区分大小写搜索
-n:限制locate返回结果数量

find命令在本地文件系统中执行实时搜索,查找符合命令行参数条件的文件。 find命令以您的用户账户身份查询文件系统中的文件。调用find的用户必须具有查看其内容的目录的读取和执行权限
find第一个参数是要搜索的目录,如果没有,则默认从当前目录开始搜索,并在任何子目录中查找匹配项

find [指定查找目录] [查找条件]  [查找完后要执行的动作]

选项:
-name
:查找匹配所有文件名的文件,并返回匹配项
-iname:执行不区分大小写的搜索
-user和-group:根据所有者和所有组执行搜索。或-uid和-gid

*:匹配任意字符

?:匹配前面一个字符

[]: 匹配[]内的任意一个字符

     [root@desktop0 ~]# find / -iname "[Db].txt"

-nouser  #查找没有用户的文件

Find/tmp –nouser  –exec rm –rf {} \;

-nogroup #查找没有组的文件

-a 连接两个不同的条件,两个条件必须同时满足

-o 连接两个不同的条件,两个条件满足其中一个就可

-not 对条件取反

 

参数:-perm
用于查找具有特定权限集的文件。权限前面可以加上/或-符号
前面带有
/的数字权限将匹配文件的用户,组,其他人权限集
中的
至少一位
权限前带有
-符号表示该位的所有三个实例都必须存在
与/或-一起使用时,0值类似于通配符,因为其表示“至少无
任何内容的权限”

实例:
find -perm -004
:匹配目录中其他人至少具有读权限的任何
文件
find -perm -002:其他人拥有写入权限的所有文件

 

find -perm /144
uFind -perm -221
uFind -perm /001
uFind -perm -201

find /tmp –perm 755  查找权限是755的文件

find /tmp –perm +755

 

[root@desktop0 tmp]# chmod 777 a3

[root@desktop0 tmp]# find /tmp -perm 777

/tmp/a3

 

[root@desktop0 tmp]# find /tmp -perm +600

/tmp/yum_save_tx.2018-01-21.11-26.vlPkN0.yumtx

/tmp/yum_save_tx.2018-01-21.14-21.LHWKR6.yumtx

/tmp/a1

[root@desktop0 tmp]# ll /tmp/a1

-rw-------. 1 root root 0 Jan 21 16:12 /tmp/a1

 

/ 满足一个就可以

+ 满足就可以

-      满足任何一个就可以

 

 

选项:-size
实例:
find -size 10M
:搜索大小等于10M的文件
find -size +10G:查找大小大于10G的文件
find -size -10KB:查找大小小于10KB的文件


选项:-mmin
实例:

find / -mmin 120:查找正好在120分钟以前更改的所有文件
find / -mmin +200:查找200分钟以前修改过的文件
find / -mmin -150:查找/目录中不到150分钟以前更改的所有文件

 

-atime  以天为单位  最近一次访问时间

-mtime 以天为单位         最近一次修改时间表

-ctime  以天为单位         最近属性修改时间

 

-amin以分钟为单位

-mmin以分钟为单位

-cmin以分钟为单位

-5    5天内

5    5

+5    5天之前

 

选项:-type
f
:表示普通文件
d:表示目录
l:表示软连接
b:表示块设备

c: 字符设备文件

p:管道文件

s: socket 文件
实例:
find /etc -type d:查找/etc下的所有目录
find / -type l:查找/所有软连接

find /dev -type b:查找/dev目录所有块设备的列表

 

选项:-links
该选项加上数字查找具有特定硬链接数的所有文件
实例:
find /etc -links 1:查找/etc下链接数为1的文件
find /etc -links +1:查找/etc下链接数大于1的文件
find /etc -links -1 :查找/etc下链接数小于1的文件

 

-newer file   比file更新的文件

[root@desktop0 tmp]# find ./ -newer rsc.txt

./

./gmy.txt

./yum_save_tx.2018-01-21.11-26.vlPkN0.yumtx

./yum_save_tx.2018-01-21.14-21.LHWKR6.yumtx

./a1

./a2

 

 

[查找完后执行action]

--print

-ls

-ok         [cmd]

-exec [cmd]

例子:

Find  /tmp  –name  “*.sh”  -- exec chmod u+x {} \;

Find  /tmp   –name “*.sh”|xargs  chmod u+x

 

 

[root@foundation0test]# groupdel testadmin
[root@foundation0 test]# find ./ -nogroup
./test002.txt
[root@foundation0 test]# find ./ -nogroup -ls
18355411 0 -rw-r--r-- 1 root 1001 0 Nov 17 20:02 ./test002.txt

[root@foundation0test]# find ./ -nouser -o -nogroup -ls
18355411 0 -rw-r--r-- 1 root 1001 0 Nov 17 20:02 ./test002.txt
[root@foundation0 test]# find ./ -nogroup -o -nouser -ls
23838779 0 -rw-r--r-- 1 1001 root 0 Nov 17 20:02 ./test001.txt
[root@foundation0 test]# ll
total 0
-rw-r--r--. 1 1001 root 0 Nov 17 20:02 test001.txt
-rw-r--r--. 1 root 1001 0 Nov 17 20:02 test002.txt
-rw-r--r--. 1 root root 0 Nov 17 20:02 test003.txt


[root@foundation0 test]# find ./ -name "test*" -type f -exec cp -rf{} /usr/local/src \;


find_perm
权限:
find -perm -004 4:other rw
至少要有一个读
find -perm /004
三位中至少有一位满足
find -perm /144
三个中匹配一个就可以了

find -perm -002 三个都要满足
find -perm -441
三个都要满足 r--r----x


find -perm 664
精确匹配 rw-rw-r

find -perm +664 精确匹配 rw-rw-r

 

[root@foundation0test]# ln test01 test001
[root@foundation0 test]# ll
total 0
-rw-r--r--. 2 root root 0 Nov 17 20:23 test001
-rw-r--r--. 2 root root 0 Nov 17 20:23 test01
[root@foundation0 test]# find ./ -links +1
./
./test01
./test001
[root@foundation0 test]# find ./ -links +2

[root@foundation0test]# ls -ali
total 4
23838778 drwxr-xr-x. 2 root root 33 Nov 17 20:23 .
128 drwxr-xr-x. 19 root root 4096 Nov 17 20:01 ..
23838779 -rw-r--r--. 2 root root 0 Nov 17 20:23 test001
23838779 -rw-r--r--. 2 root root 0 Nov 17 20:23 test01

[root@foundation0 test]# find ./ -inum 23838779
通过INODE查找文件
./test01
./test001

[root@foundation0test]# ll
total 8
-rw-r--r--. 1 root root 2 Nov 17 20:27 rsc
-rw-r--r--. 1 root root 4 Nov 17 20:27 rsc001
-rw-r--r--. 2 root root 0 Nov 17 20:23 test001
-rw-r--r--. 2 root root 0 Nov 17 20:23 test01
[root@foundation0 test]# find ./ -newer rsc
./rsc001

 

 

 

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS