1. find ./ -type f -size +200k -a -size -210k
找到当前目录及其子目录下的所有大于200k且小于210k大小的文件
-size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。
-type x 查找类型为x的文件,x为下列字符之一:
b 块设备文件
c 字符设备文件
d 目录文件
p 命名管道(FIFO)
f 普通文件
l 符号链接文件(symbolic links)
s socket文件
-xtype x 与-type基本相同,但只查找符号链接文件。
2. find / \( -path "/proc" -o -path "/sys" \) -prune -o -mtime -1 -type f -print
打印出系统中最近一天修改过的常规文件, /proc和/sys目录除外
( PS: 该命令常用于检查系统是否被黑客攻击, 可以看出一些系统常用工具命令是否被篡改。 )
-mmin +/-n 查找n分钟以前/内文件内容被修改过的所有文件。
-mtime +/-n 查找n天以前/内文件内容被修改过的所有文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
$ find /apps -path "/apps/bin" -prune -o -print
显示/apps目录中,除/apps/bin目录的所有文件和目录等;也就是当-path "/apps/bin"找到,则-prune,否则就-print,类似于:
if -path "/usr/sam" then
-prune
else
-print
find /test \( -path /test/dir1 -o -path /test/file1 \) -prune -o -name "temp" -print 找/test目录下除了/test/dir1和/test/file1目录外的其他目录中的temp文件和目录等
-o/or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:
$ find –name ’tmp’ –o –name ’mina*’ 该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。
find ${TMP_DIR} \( -name "*.sql" -o -name "*.tmp" \) -type f -mtime +15 | xargs -r -n 10 rm -rf
V.S.
find ${TMP_DIR} -name "*.sql" -o -name "*.tmp" -type f -mtime +15 | xargs -r -n 10 rm -rf
注意这两条命令的区别: 第一条, 会找到TMP_DIR目录下所有文件名为*.sql或者*.tmp的, 且修改时间大于15天的普通文件删除掉。 而第二条, 会找到所有文件名为*.sql的任何文件, 或者文件名为*.tmp的普通文件且修改时间大于15天的文件删除掉。
另外, \( -name "*.sql" -o -name "*.tmp" \), \(\)中间的条件与括号本身要用空格分开, 否则会报错
阅读(1587) | 评论(0) | 转发(0) |