Linux中的find命令简介

1.find命令的用法简介

-name文件名
-user文件所有人
-group文件所有组
-maxdepth最大深度
-mindepth最小深度
-size(20k -20k +20k)文件大小
-perm文件权限
-type文件类型
-mtime文件修改时间
-ctime (10 -10 +10)文件创建时间
-a
-o
-not不是

实验一:关于文件名所有人和所有组

准备工作:

<1>删除/mnt/下的所有文件,新建一个用户hello,创建五个文件

[root@shell_example mnt]# rm -fr *
[root@shell_example mnt]# ls
[root@shell_example mnt]# useradd hello
[root@shell_example mnt]# id hello
uid=1001(hello) gid=1001(hello) groups=1001(hello)
[root@shell_example mnt]# touch file{1..5}
[root@shell_example mnt]# ls
file1  file2  file3  file4  file5
[root@shell_example mnt]# ls -l
total 0
-rw-r--r--. 1 root root 0 Apr  3 06:12 file1
-rw-r--r--. 1 root root 0 Apr  3 06:12 file2
-rw-r--r--. 1 root root 0 Apr  3 06:12 file3
-rw-r--r--. 1 root root 0 Apr  3 06:12 file4
-rw-r--r--. 1 root root 0 Apr  3 06:12 file5

在这里插入图片描述
在这里插入图片描述
<2>修改这五个文件的所有人和所有组如下:

[root@shell_example mnt]# chgrp student file1
[root@shell_example mnt]# chown student.student file2
[root@shell_example mnt]# chown student.root file3
[root@shell_example mnt]# chown hello.student file4
[root@shell_example mnt]# ls -l
total 0
-rw-r--r--. 1 root    student 0 Apr  3 06:12 file1
-rw-r--r--. 1 student student 0 Apr  3 06:12 file2
-rw-r--r--. 1 student root    0 Apr  3 06:12 file3
-rw-r--r--. 1 hello   student 0 Apr  3 06:12 file4
-rw-r--r--. 1 root    root    0 Apr  3 06:12 file5

在这里插入图片描述
<1>找出/mnt/目录下所有组时student用户的文件

[root@shell_example mnt]# find /mnt/ -group student
/mnt/file1
/mnt/file2
/mnt/file4

在这里插入图片描述
<2>找出/mnt下所有人是root的文件

[root@shell_example mnt]# find /mnt/ -user root
/mnt/
/mnt/file1
/mnt/file5

在这里插入图片描述
<3>找出/mnt下所有人是student的文件

[root@shell_example mnt]# find /mnt/ -user student
/mnt/file2
/mnt/file3

在这里插入图片描述
<4>找出/mnt/下所有人是root并且所有组是student的文件

[root@shell_example mnt]# find /mnt/ -user root -a -group student
/mnt/file1

在这里插入图片描述
<5>找出/mnt下所有人是root或者所有组是student的文件

[root@shell_example mnt]# find /mnt/ -user root -o -group student
/mnt/
/mnt/file1
/mnt/file2
/mnt/file4
/mnt/file5

在这里插入图片描述
<6>找出/mnt下所有人是root并且所有组不是student的文件

[root@shell_example mnt]# find /mnt/ -user root -a -not -group student
/mnt/
/mnt/file5

在这里插入图片描述
<7>找出/etc下最大深度为2的文件名为passwd的文件

[root@shell_example mnt]# find /etc -maxdepth 2 -name passwd
/etc/passwd
/etc/pam.d/passwd

在这里插入图片描述
<8>找出/etc下最大深度为1的文件名为passwd的文件

[root@shell_example mnt]# find /etc -maxdepth 1 -name passwd
/etc/passwd

在这里插入图片描述
<9>找出/etc下最小深度为1的文件名为passwd的文件

[root@shell_example mnt]# find /etc -mindepth 1 -name passwd
/etc/passwd
/etc/pam.d/passwd

在这里插入图片描述
<10>找出/etc下最小深度为2的文件名为passwd的文件

[root@shell_example mnt]# find /etc -mindepth 2 -name passwd
/etc/pam.d/passwd

在这里插入图片描述
实验二:关于文件大小

准备工作:

<1>删除mnt下所有的文件

[root@shell_example ~]# cd /mnt
[root@shell_example mnt]# ls
file1  file2  file3  file4  file5
[root@shell_example mnt]# rm -fr *
[root@shell_example mnt]# ls

在这里插入图片描述
<2>创建三个大小分别为10k,20k,30k的文件file1,file2,file3

[root@shell_example mnt]# dd if=/dev/zero of=/mnt/file1 bs=1024 count=10
10+0 records in
10+0 records out
10240 bytes (10 kB) copied, 0.000285556 s, 35.9 MB/s
[root@shell_example mnt]# dd if=/dev/zero of=/mnt/file2 bs=1024 count=20
20+0 records in
20+0 records out
20480 bytes (20 kB) copied, 0.000106123 s, 193 MB/s
[root@shell_example mnt]# dd if=/dev/zero of=/mnt/file3 bs=1024 count=30
30+0 records in
30+0 records out
30720 bytes (31 kB) copied, 0.000221244 s, 139 MB/s
[root@shell_example mnt]# ll
total 64
-rw-r--r--. 1 root root 10240 Apr  3 12:08 file1
-rw-r--r--. 1 root root 20480 Apr  3 12:09 file2
-rw-r--r--. 1 root root 30720 Apr  3 12:09 file3

在这里插入图片描述
在这里插入图片描述
<1>找出大小为20k的文件

[root@shell_example mnt]# find /mnt -size 20k
/mnt/file2

在这里插入图片描述
<2>找出大小小于20k的文件

[root@shell_example mnt]# find /mnt -size -20k
/mnt
/mnt/file1

在这里插入图片描述
<3>找出大小大于20k的文件

[root@shell_example mnt]# find /mnt -size +20k
/mnt/file3

在这里插入图片描述
find的特殊功能:额外操作
find -exec {} ;
(1){}代表的是由find找到的结果,find的结果会被放到{}位置中
(2)-exec一直到;都是关键词,代表find额外操作的开始(-exec)到结束(;),在这中间的就是find命令内的额外操作
(3)因为[;]在bash环境下时有特殊意义的,所以用反斜杠来转义

<1>删除大小为20k的文件

[root@shell_example mnt]# find /mnt -size 20k -exec rm -fr {} \;
[root@shell_example mnt]# ls -l
total 44
-rw-r--r--. 1 root root 10240 Apr  3 12:08 file1
-rw-r--r--. 1 root root 30720 Apr  3 12:09 file3

在这里插入图片描述
实验三:关于文件权限

准备工作:

<1>创建五个文件,将他们的权限全部改为000

[root@shell_example mnt]# touch file{1..5}
[root@shell_example mnt]# ll
total 44
-rw-r--r--. 1 root root 10240 Apr  3 12:24 file1
-rw-r--r--. 1 root root     0 Apr  3 12:24 file2
-rw-r--r--. 1 root root 30720 Apr  3 12:24 file3
-rw-r--r--. 1 root root     0 Apr  3 12:24 file4
-rw-r--r--. 1 root root     0 Apr  3 12:24 file5
[root@shell_example mnt]# chmod 000 *
[root@shell_example mnt]# ll
total 44
----------. 1 root root 10240 Apr  3 12:24 file1
----------. 1 root root     0 Apr  3 12:24 file2
----------. 1 root root 30720 Apr  3 12:24 file3
----------. 1 root root     0 Apr  3 12:24 file4
----------. 1 root root     0 Apr  3 12:24 file5

在这里插入图片描述
<2>依次修改权限如下:

[root@shell_example mnt]# chmod 400 file1
[root@shell_example mnt]# chmod 040 file2
[root@shell_example mnt]# chmod 644 file3
[root@shell_example mnt]# chmod 444 file4
[root@shell_example mnt]# chmod 222 file5
[root@shell_example mnt]# ll
total 44
-r--------. 1 root root 10240 Apr  3 12:24 file1
----r-----. 1 root root     0 Apr  3 12:24 file2
-rw-r--r--. 1 root root 30720 Apr  3 12:24 file3
-r--r--r--. 1 root root     0 Apr  3 12:24 file4
--w--w--w-. 1 root root     0 Apr  3 12:24 file5

在这里插入图片描述
注意:
(1)-perm 444 最少三个条件
(2)-perm -444 o g u 每一位都含有4
(3)-perm /444 任意一个含有4就可以匹配 一个条件
企业7之前用+

<1>文件权限是444的 三个条件:每一位都是4

[root@shell_example mnt]# find /mnt/ -perm 444
/mnt/file4

在这里插入图片描述
<2>文件权限中o g u 每一位都含有4的

[root@shell_example mnt]# find /mnt/ -perm -444
/mnt/
/mnt/file3
/mnt/file4

在这里插入图片描述
<3>文件权限中任意一位含有4的(一个条件)

[root@shell_example mnt]# find /mnt/ -perm /444
/mnt/
/mnt/file1
/mnt/file3
/mnt/file2
/mnt/file4

在这里插入图片描述
<4>文件权限中 o g u每一位都含有2 的

[root@shell_example mnt]# find /mnt/ -perm -222
/mnt/file5

在这里插入图片描述
<5>文件权限 u位含有0 g位含有0 o位含有2的

[root@shell_example mnt]# find /mnt/ -perm -002
/mnt/file5

在这里插入图片描述
<6>文件权限中 u位含有0 g位含有0 o位含有2的

[root@shell_example mnt]# find /mnt/ -perm /002
/mnt/file5
[root@shell_example mnt]# find /mnt/ -perm /200
/mnt/
/mnt/file3
/mnt/file5

在这里插入图片描述
在这里插入图片描述
<7>文件权限中 u位含有4或2 或g位含有4 或o位含有4的

[root@shell_example mnt]# find /mnt/ -perm /644
/mnt/
/mnt/file1
/mnt/file3
/mnt/file2
/mnt/file4
/mnt/file5

在这里插入图片描述
<8>文件权限 u g o 分别是6 4 4 的

[root@shell_example mnt]# find /mnt/ -perm -644
/mnt/
/mnt/file3

在这里插入图片描述
<9>文件权限是644的

[root@shell_example mnt]# find /mnt/ -perm 644
/mnt/file3

在这里插入图片描述
实验四:关于类型和时间

<1>找出/etc下是链接类型的文件

[root@shell_example mnt]# find /etc -type l

在这里插入图片描述
<2>验证:查看找出的文件的类型

[root@shell_example mnt]# ls  -l /etc/mtab
lrwxrwxrwx. 1 root root 17 May  6  2014 /etc/mtab -> /proc/self/mounts

在这里插入图片描述
<3>找出/mnt下是目录类型的文件,找出的是他本身

[root@shell_example mnt]# find /mnt -type d
/mnt

在这里插入图片描述
<4>查看/mnt目录最近被修改的时间

[root@shell_example mnt]# stat /mnt
  File: ‘/mnt’
  Size: 66        	Blocks: 0          IO Block: 4096   directory
Device: fd01h/64769d	Inode: 8388761     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:mnt_t:s0
Access: 2019-04-03 12:24:27.771188001 -0400
Modify: 2019-04-03 12:24:25.962188001 -0400
Change: 2019-04-03 12:24:25.962188001 -0400
 Birth: -

在这里插入图片描述
查看系统当前时间,可以看出距离上一次修改过了26分钟

[root@shell_example mnt]# date
Wed Apr  3 12:50:06 EDT 2019

在这里插入图片描述
<5>打开file1 不做修改退出
[root@shell_example mnt]# vim file1
在这里插入图片描述
<1>找出/mnt下距离上一次访问时间小于1分钟的文件

[root@shell_example mnt]# find /mnt -amin -1
/mnt/file1

在这里插入图片描述
<2>找出/mnt下距离上一次访问时间小于10分钟的文件

[root@shell_example mnt]# find /mnt -amin -10
/mnt/file1

在这里插入图片描述
<3>找出/mnt下距离上一次访问时间大于10分钟的文件

[root@shell_example mnt]# find /mnt -amin +10
/mnt
/mnt/file3
/mnt/file2
/mnt/file4
/mnt/file5

在这里插入图片描述
<4>找出/mnt下距离创建时间大于10分钟的文件

[root@shell_example mnt]# find /mnt -cmin +10
/mnt
/mnt/file1
/mnt/file3
/mnt/file2
/mnt/file4
/mnt/file5

在这里插入图片描述
<5>找出/mnt下距离上一次被修改的时间大于10分钟的文件

[root@shell_example mnt]# find /mnt -mmin +10
/mnt
/mnt/file1
/mnt/file3
/mnt/file2
/mnt/file4
/mnt/file5

在这里插入图片描述
<6>找出/mnt下距离创建时间小于10分钟的文件

[root@shell_example mnt]# find /mnt -cmin -10

在这里插入图片描述
<7>找出/mnt下距离上一次被修改的时间小于10分钟的文件

[root@shell_example mnt]# find /mnt -mmin -10

在这里插入图片描述
(你是五彩斑斓的黑,还是绚丽多彩的白,已疯,再见~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值