find的使用

find在linux中使用很多很频繁今天我们一起来学习一下find的各种使用

1 find的名称查找文件

(1)可输入全名查找

[root@db04 /etc]# find ./ -name passwd

./passwd

./pam.d/passwd

(2)如果你只是对文件只有模糊的印象可根据  “pass*”查找

[root@db04 /etc]# find ./ -name "pass*"

./openldap/certs/password

./selinux/targeted/active/modules/100/passenger

./passwd

2 find大小的查找

(1) 查找大于5M的文件

[root@db04 /etc]# find ./ -size +5M

./udev/hwdb.bin

(2)查找小于5M的文件

[root@db04 /etc]# find ./ -size -5M 

(3)可以把查出来的结果用管道符给展示出来

[root@db04 /etc]# find ./ -size -5M |xargs ls -lh

find按类型查找

f 文件

d 目录

l 链接

p 管道文件

s socket文件

c 字符设备 

b 块设备

(1)查找文件

[root@db04 /etc]# find ./ -type f -iname "pass*"

(2)查找目录

[root@db04 /etc]# find ./ -type d -iname "pass*"

(3)查找链接文件

[root@db04 /etc]# find ./ -type l -iname "*b*"

(4)查找块设备

[root@db04 /etc]# find /dev/ -type b 

(5)查找字符设备

[root@db04 /etc]# find /dev/ -type c -ls


find以时间查找

(1)查找当前时间以前的文件

[root@db04 /etc]# find ./ -type f -mtime +7

(2)查找当前时间以后的文件然后删除

[root@db04 /etc]# find ./ -type f -mtime -7 -delete

find用户查找

(1)查找属主是什么的

[root@db04 /etc]# find ./ -type d -user www -ls

find /home/ -maxdepth 1 -type d -user jack

(2)查找属组是什么的

find /home/ -maxdepth 1 -type d -group hr -ls

[root@db04 /etc]# find ./ -type d -group root -ls

find /home/ -maxdepth 1 -type d -user jack -group hr -ls

find /home/ -maxdepth 1 -type d -user jack -o -group hr|xargs ls -ld

(3)查找home目录下,类型是目录没有属主的

[[email protected] ~]# find /home/ -maxdepth 1 -type d -nouser -ls

(4)查找home目录下,类型是目录没有属组的

[[email protected] ~]# find /home/ -maxdepth 1 -type d -nogroup -ls

find权限查找

(1)精确查找文件权限

[root@db04 /etc]# find ./ -type f -perm 644

(2)#包含444权限即可 -444

[[email protected] ~]# find ./ -type f -name "file*" -perm -444


Action动作:

-delte,只能删除文件,如果要删除目录,需要保证目录为空,否则无法删除

[[email protected] ~]# find ./log/ -type f -name "*.log" -delete

-ok,可以执行任何自定义命令,但是会提示是否确认.

[[email protected] ~]# find /etc/ -name "ifcfg*" -ok cp -vp {} /tmp \;

-exec

[[email protected] ~]# find /etc/ -name "ifcfg*" -exec cp -vp {} /tmp \;

[[email protected] ~]# find log/ -type d -exec cp -rpv {} /tmp \;

[[email protected] ~]# find test/ -type f -exec rm -f {} \;

#xargs将前者命令查找到的文件作为一个整体传递后者命令的输入

[root@xuliangwei ~]# touch file.txt

[root@xuliangwei ~]# find . -name "file.txt" |xargs rm -f

[[email protected] ~]# find . -name "file.txt" |xargs -I {} cp -rvf {} /tmp

你可能感兴趣的:(find的使用)