find

find命令的使用

命令介绍

find是在指定目录下查找文件。

语法

1
find pathname  -options [-print -exec -ok ...]

参数解释

1
2
3
4
- pathname: find命令所查找的目录路径。
- -print: find命令将匹配的文件输出到标准输出。
- -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应的命令形式为 'command' { } ;,注意{ }和;之间的空格。
- -ok: 和-exec的作用相同,只不过以一种更安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

命令选项

-name

按照文件名查找文件。

1
find -name "*.c"  #查找本目录下,所有以.c结尾的文件

-perm

按照文件权限查找文件

1
find -perm 777

-mtime -n +n

按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-mtime选项类似。

注意:下面是几个按照时间来查找文件的参数含义总结

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-amin n

查找系统中最后N分钟访问的文件

-atime n

查找系统中最后n*24小时访问的文件

-cmin n

查找系统中最后N分钟被改变文件状态的文件

-ctime n

查找系统中最后n*24小时被改变文件状态的文件

-mmin n

查找系统中最后N分钟被改变文件数据的文件

-mtime n

查找系统中最后n*24小时被改变文件数据的文件

-type

查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

-newer file1 ! file2

查找更改时间比文件file1新但比文件file2旧的文件。

使用exec或ok执行shell命令

1
2
3
4
find  -type f -exec ls -l { } ; #查看当前目录下的普通文件,并且对那些文件执行 ls -l

find . -name "*.conf" -mtime +5 -ok rm { } ;
#删除本目录下的conf后缀的文件并且该文件在5天前被修改。ok会先询问用户是否确定要删除文件