最近参加了一个面试,被面试官问到了查找文件的一些用法,由于平时工作中接触到的不多,所以被鄙视了。
今天总结了Shell中Find 的命令,记录如下:
1. find . -name "*.conf" -print
找出 当前目录下找出.conf 结尾的文件并print 出来。
2. find . -type f -print
- b - 块设备文件。
- d - 目录。
- c - 字符设备文件。
- p - 管道文件。
- l - 符号链接文件。
- f - 普通文件。
3. find /etc -perm 755
-perm: 文件权限
找出/etc 下面文件权限是755 的文件
4. -prune
find /apps -path "/apps/bin" -prune -o -print
希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找
5. find / -mtime -5 -print
找出更改时间在五天以内的文件
find /var/adm -mtime +3 -print
在/var/adm目录下查找更改时间在3日以前的文件
6. find . -newer temp -print
找出比temp 文件更新的文件
7. find /home/apache -size +100c -print
找出size 大于100个字节的文件
文件大小只能用字节多少来表示,似乎不支持 M??
8. find .xxxx -print
-print 表示把前面的结果打印在屏幕上
9. find xxx -exec xxxx
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } /;,注意{ }和/;之间的空格。
例子:
在/logs目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec rm { } /;