Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1485435
  • 博文数量: 263
  • 博客积分: 10851
  • 博客等级: 上将
  • 技术积分: 2627
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-26 22:40
文章分类

全部博文(263)

文章存档

2013年(4)

2012年(25)

2011年(33)

2010年(50)

2009年(138)

2008年(13)

分类: LINUX

2009-03-02 22:01:45

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) |
给主人留下些什么吧!~~