2020-03-19 find命令

一,find的作用

find 可以通过不同的维度来精确定位定位到某个想要查找的文件

二,find的类型

名称

大小

修改时间类型

文件属主和属组

1,find名称查找

#1.创建文件

touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1}

#2.查找/etc目录下包含ifcfg-eth0名称的文件

[root@xuliangwei ~]# find /etc -name "ifcfg-eth1"

#3.-i 忽略大小写

[root@xuliangwei ~]# find /etc -iname "ifcfg-eth1"

#查找/etc目录下包含ifcfg-eth名称所有文件

[root@xuliangwei ~]# find /etc/ -name "ifcfg-eth*"

[root@xuliangwei ~]# find /etc -iname "ifcfg-eth*"


2,find大小查找


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

[root@xuliangwei ~]# find /etc -size +5M

#2.查找等于5M的文件

[root@xuliangwei ~]# find /etc -size 5M

#3.查找小于5M的文件

[root@xuliangwei ~]# find /etc -size -5M 

3,find类型查找

[root@oldboy ~]# find /etc -type f -name "ifcfg-*"

查找/etc目录下类型是文件的,并且名称  大概是 ifcfg-*

[root@oldboy ~]# find /sbin/ -type l -name "xx" -size +10k

查找/sbin/目录下,类型是软链接的,并且名称是xx的,并且大小大于10k

# f 文件

[root@xuliangwei ~]# find /dev -type f

# d 目录

[root@xuliangwei ~]# find /dev -type d

# l 链接

[root@xuliangwei ~]# find /dev -type l

# b 块设备

[root@xuliangwei ~]# find /dev -type b

# c 字符设备

[root@xuliangwei ~]# find /dev -type c

# s 套接字

[root@xuliangwei ~]# find /dev -type s

4,find时间查找

#1.创建测试文件(后期shell会讲)

[root@xuliangwei ~]# for i in {01..10};do date -s  202002$i && touch file-$i;done

#2.查找7天以前的文件(不会打印当天的文件)=====( 保留了最近7天的数据)

[root@xuliangwei ~]# find ./ -iname "file-*" -mtime +7

#3.查找最近7天的文件,不建议使用(会打印当天的文件)

[root@xuliangwei ~]# find ./ -iname "file-*" -mtime -7

#4.查找第7天文件(不会打印当天的文件)

[root@xuliangwei ~]# find ./ -iname "file-*" -mtime 7


5,find用户查找

#查找属主是jack

[root@xuliangwei ~]# find /home -user jack

#查找属组是admin

[root@xuliangwei ~]# find /home -group admin

#查找属主是jack, 属组是admin

[root@xuliangwei ~]# find /home -user jack -group admin

#查找属主是jack, 并且属组是admin

[root@xuliangwei ~]# find /home -user jack -a -group admin

#查找属主是jack, 或者属组是admin

[root@xuliangwei ~]# find /home -user jack -o -group admin

#查找没有属主

[root@xuliangwei ~]# find /home -nouser

#查找没有属组

[root@xuliangwei ~]# find /home -nogroup

#查找没有属主或属组

[root@xuliangwei ~]# find /home -nouser -o -nogroup

三,find动作命令

#1.使用-print打印查找到的文件

[root@xuliangwei ~]# find /etc -name "ifcfg*"

[root@xuliangwei ~]# find /etc -name "ifcfg*" -print

#2.使用-ls打印查找到的文件,以长格式显示

[root@xuliangwei ~]# find /etc -name "ifcfg*" -ls

#3.使用-delete删除文件,但仅能删除空目录

[root@xuliangwei ~]# find /etc -name "ifcfg*" -delete

#4.使用-ok实现文件拷贝,但会提示是否拷贝

[root@xuliangwei ~]# find /etc -name "ifcfg*" -ok cp -v {} /tmp \;

#5.使用-exec实现文件拷贝和文件删除。

[root@xuliangwei ~]# find /etc -name "ifcfg*" -exec cp -v {} /tmp \;

[root@xuliangwei ~]# find /etc -name "ifcfg*" -exec rm -f {} \;


xargs跟exec的区别

事实证明,xargs的效率比较高。



总结

总结

1,记得文件的内容是什么,但是不清楚文件名称是什么,也不知道路径在哪,怎么办?

find 查找文件  通过 grep 筛选查找出来的文件内容

find /etc  -type f  |  xargs grep "oldxu" --color=auto

查找/etc目录下,所有类型是文件的,然后将查找到的结果作为grep筛选条件的参数

2,定位一个文件时

find 定位路径,定位他的特征(名称、大小、时间、属主、类型)、多个表达式一起使用、定位后得到结果

可以通过动作来处理(查看、列出、拷贝、删除...........)

你可能感兴趣的:(2020-03-19 find命令)