find [path...] [expression]
- path:find命令所查找的目录路径
- expression:expression可以分为“-options [-print -exec -ok...]”
- -options,指定find命令的常用选项;
- -print,find命令将匹配的文件输出到标准输出;
- -exec,find命令对匹配的文件执行该参数所给出的shell命令; 形式为'command' { } \;,注意{ }和\;之间的空格
i.e.
>>find ./ -size 0 -exec rm {} \ // 删除文件大小为零的文
>>find . -name "*.conf" -exec cp {} ./tmp/ \ 件
>>find . -name "*.conf" -mtime +5 -ok rm {} \ //在当前目录中查找所有文件名以.conf结尾、更改时间在5日以上 的文件,并删除它们,在删除之前先给出提示(这是ok和exec的区别)
- 常用选项
-name 按照文件名查找文件;
>>find . -name "*.c" //在当前目录及其子目录(用“.”表示)中查找任何扩展名为“c”的文件
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天 以前
>>find / -mtime -5 -print //在系统根目录下查找更改时间在5日以内的文件
-type 查找某一类型的文件
b - 块设备文件
d - 目录
c - 字符设备文件
p - 管道文件
l - 符号链接文件
f - 普通文件
>>find . ! -type d -print //在当前目录下查找除目录以外的所有类型的文件
-size n [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
>>find . -size +1000000c –print //在当前目录下查找文件长度大于1 M字节的文件
>>find . -size +10 –print //在当前目录下查找长度超过10块的文件(一块等于512字节)
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找(递归查找)
-follow 若find命令遇到符号链接文件,就跟踪至链接所指向的文件
>> find ./ -type f ! -name "file10" -print | xargs rm -rf //当前文件夹下删除名字不是file10 的所有文件