find 命令  

文件命令查找之find:

个人理解的(文件查找)就是按照某种需要的条件对符合条件的文件进行筛选。 find和grep是不一样的,grep是用来查找文本内容的,查找字符串的,而find是用来查找文件的。{grep找文本,find找文件}。find是实时查找工具也就是说它随时都可以查找出更新或删除的文件。find工作时是遍历整个文件系统的,根据给的条件在文件系统中一个一个的找。

find的特性,因为查找时要遍历整个文件系统,所以它的查找速度会慢下来,find查找具有实时性,它是精确查找,支持glob通配符。  下面是一些实例。

find用法:find   路径 (告诉find去哪里找)   命令参数[查找条件]    输出形式(处理动作)

根据文件名查找:-name    实例

-iname 不区分文件名大小写

[[email protected] ~]# find /etc -name  default
                                /etc/default
                               /etc/sysconfig/networking/profiles/default

一、  根据文件从属关系查找:-user

[[email protected] ~]# find /tmp -user root  -exec ls -la {} \;
     total 12
     drwxrwxrwt.  3 root root 4096 Dec 19 15:45 .

通过上面这个例子就知道  这个文件属主的确是 root,后面的 -exec  ls -la {} \;是处理动作,意思就是把找到的内容做什么样的处理。

-ok 作用和exec一样意思 只是要询问操作者而已。来看看实例

-print为标准输出(默认就为标准输出)

-delete删除查找出的文件

-fls把找出的信息保存到指定文件

[[email protected] ~]# find /tmp -user root -ok ls -ld {} \;
                                   < ls ... /tmp > ? y(此处是询问)
                     drwxrwxrwt. 3 root root 4096 Dec 19 15:45 /tmp
注意使用格式:-exec 你希望怎么处理查找出来的文件 {} \;一定要注意{}和\之间的空格

-exec  命令 {} \;

1、根据组查找:-group

[[email protected] ~]# find /tmp -group root -exec ls -ld {} \;
drwxrwxrwt. 3 root root 4096 Dec 19 15:45 /tmp
drwxrwxrwt 2 root root 4096 Dec 19 14:36 /tmp/.ICE-unix

2、根据uid查找我们先来指定一个用户的uid

useradd -u clown

[[email protected] ~]# find /home -uid 520 -exec ls -ld {} \;
  drwx------ 4 clown clown 4096 Dec 19 16:57 /home/clown
  -rw-r--r-- 1 clown clown 124 Jul 24 02:55 /home/clown/.bashrc

3、根据gid来查:-gid

[[email protected] ~]# find /home -gid 520 -exec ls -ld {} \;
drwx------ 4 clown clown 4096 Dec 19 16:57 /home/clown
-rw-r--r-- 1 clown clown 124 Jul 24 02:55 /home/clown/.bashrc

4、根据文件大小来查找: -size

-size查找大于100M的文件,可根据自己先需要加上G,M,k

[[email protected] ~]# find /var -size +100M  -exec ls -lh {} \;
[[email protected] ~]# echo $?
0

没有这样的  .........但是命令是执行成功的,状态码返回值为0.

如果返回值是1-255则说明命令执行失败。

要查看小于一百的有很多很多的

5、根据文件名查找:-name    实例

-iname 不区分文件名大小写

[[email protected] ~]# find /etc -name  default
                                /etc/default
                               /etc/sysconfig/networking/profiles/default

6、根据文件类型来查找 -type

在Linux中文件类型有如下几种:

f:普通文件

d:目录

c:字符

b:块

p:管道

s:套接字

l:符号链接文件

实例:

[[email protected] ~]# find /tmp -type d -exec ls -ld {} \;
drwxrwxrwt. 3 root root 4096 Dec 19 15:45 /tmp
drwxrwxrwt 2 root root 4096 Dec 19 14:36 /tmp/.ICE-unix

-nouser与-nogroup:查找没有属组和属主的文件

二、组合测试

如果给了find多个条件,那么find默认逻辑就是 -a ,

[[email protected] ~]# find /etc -nogroup -type f -ls
[[email protected] ~]# echo $?
0

1、-a就是与运算 --- 只有两个条件都满足才符合条件

-a表示与关系:

[[email protected] ~]# find /etc -nogroup -a -type f | wc -l
0

2、-o表示或运算---只要其中有一个条件满足就符合条件

-o表示或关系:

[[email protected] ~]# find /etc -nogroup -o -type f | wc -l <------
1346<-----
前面这两个命令一样,能看出分别吧

3、-not表示与条件相反的:

[[email protected] ~]# find /tmp -not -user root -a -not -group root
[[email protected] ~]# echo $?
0
没有这样的文件

三、根据时间戳来查找:

1、以天数为时间
-mtime修改时间

-ctime改变时间

2、以分钟为时间

这是以分钟为单位

-amin访问

-mmin修改

-cmin改变

[[email protected] ~]# find /home -mtime -10    十天内被修改过的文件
/home
/home/po
/home/clown

-ctime,十天内没有被修改过的文件

[[email protected] ~]# find /home -ctime +10
/home/po/.bash_logout
/home/kim/.bashrc
/home/kim/.bash_history

根据权限来查找-perm

-perm [/-mode]

mode:为精确查找

/mode:只要有一位查找中的权限就符合条件

[[email protected] ~]# find /etc -perm /007 | wc -l
1777

-mode:007相当于777,-006相当与666

[[email protected] ~]# find /etc -perm -007 | wc -l
556

查找权限为700的

[[email protected] ~]# find /etc -perm 700 -ls

表示精确查找

917860    4 drwx------   7 root     root         4096 Dec  7 13:27 /etc/polkit-

时间: 2024-10-06 13:00:33

find 命令  的相关文章

linux常用命令--netstat

简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接等等. 常用参数 -a (all)显示所有选项,提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字.-l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名-r 显示路由信息,路由

使用fruitstrap实现命令行将IPA包安装到iOS设备上

Requirements Mac OS X. Tested on Snow Leopard only. You need to have a valid iPhone development certificate installed. Xcode must be installed, along with the SDK for your iOS version. Usage fruitstrap [-d] -b <app> [device_id] Optional -d flag laun

Linux基础命令小结

注意:Linux严格区分大小写 老男孩方法论经验之谈: 有一种方法叫做没方法 有两种方法,左右为难 有三种方法才叫有方法 停止一个命令:CTR + C 1.创建目录 英文:make directorys 命令:mkdir 实例:三种方式 mkdir /data cd / mkdir data cd /;mkdir data mkdir x y z    表示同时创建多个目录 mkdir -p /data/x/y   表示同时创建多级目录(递归创建),切记不可用mkdir /data/x/y 2.

10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包

- 10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包 - 扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html  - tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html  # 10.6 监控io性能 ![mark](http://oqxf7c508.bkt.clouddn.com/b

uboot下的命令使用示例

1.usb 可以使用此命令读取u盘里的内容,此命令加上相关参数可以有以下功能: 1.1usb start 在使用u盘之前必须启动此命令以初始化好fat文件系统环境,笔者的输出如下: jello # usb start(Re)start USB...USB:   Starting the controllerscanning bus for devices... 5 USB Device(s) found       scanning bus for storage devices... usb_

reset master和reset slave命令解析和区别

reset master删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库, 注意: reset master 不同于purge binary log的两处地方1.reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而purge binary log 命令并不会修改记录binlog的顺序的数值2.reset maste

【Windows10&nbsp;IoT开发系列】Powershell命令行实用程序

原文:[Windows10 IoT开发系列]Powershell命令行实用程序 更新帐户密码: 强烈建议你更新默认的管理员帐户密码.若要更新帐户密码,你可以发出以下命令: net user Administrator [new password]​ (其中 [new password] 表示你选择的强密码). 创建本地用户帐户: 如果你想要授予其他人访问你的 Windows IoT Core 设备的权限,你可以通过在 net user [username] [password] /add​ 中键

windows下cmd命令行显示UTF8字符设置(CHCP命令)

在中文windows系统中,如果一个文本文件是utf-8编码的,那么在cmd.exe命令行窗口(所谓的dos窗口)中不能正确显示文件中的内容.在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集. 如果想正确显示UTF-8字符,可以按照以下步骤操作: 1.打开CMD.exe命令行窗口 2.通过 chcp命令改变代码页,UTF-8的代码页为65001 1 chcp 65001 执行该操作后,代码页就被变成UTF-8了.但是,在窗口中仍旧不能正确显示UTF-8字符

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

Linux 帮助命令

help 命令只能显示 shell 内部的命令帮助信息,而对于外部命令的帮助信息只能使用 man 或者 info 命令查看,info 指令是 man 指令的详细内容 [[email protected] ~]# help pwd [[email protected] ~]# man pwd [[email protected] ~]# info pwd