Chinaunix首页 | 论坛 | 博客
  • 博客访问: 869792
  • 博文数量: 192
  • 博客积分: 8554
  • 博客等级: 中将
  • 技术积分: 1892
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-12 04:36
文章分类

全部博文(192)

文章存档

2012年(5)

2010年(27)

2009年(22)

2008年(42)

2007年(51)

2006年(45)

分类:

2007-06-01 17:26:16

Find的常用选项

经常会遇到这种情况:某个文件系统的使用率达到85%以上,但该文件系统暂时无法扩展。这时候,应该到这个文件系统中找到一些过大的文件(当该文件系统中的某个目录中有过多的小文件时也会出现该情况)。

然后,将这些文件压缩。

为了找到这些文件,需要适用find命令。针对该情况而使用的find选项如下:

 

-xdev     位置无关项。可以避免find跨越指定目录的文件系统。当指定目录下有其它文件系统的挂载点时,我们为了不在其它文件系统中查找文件,可用该选项。

-name     匹配名字。

        注:当从shell中调用find时,模式应该进行转义(使用反斜杠)或使用引号括起来,以防止shell扩展任何元字符。模式可能包含补充代码集字符。

―――――――以上是文档的原话。

 

-type c   查找类型为c的文件。其中c是下列值之一:

              f      常规文件

              d     目录

              b     块设备专用文件

              c     字符设备专用文件

              p     FIFO(命名管道)

              l      符号链接

              s      套接字

              n     网络设备专用文件

              M    挂载点

 

-size       n[c]      查找文件长度为n块(每块为512字节)。如果n后面跟c,则文件大小用字节表示。

 

-atime n         查找最后访问时间距现在为n天的文件。

 

-mtime n        查找最后修改时间距现在为n天的文件。

 

-ctime n         查找最后对文件状态信息修改时间为n天的文件。

 

-newer file     查找最后更新时间比file文件最后更新晚的文件。

 

例子:

/home文件系统使用率为95%,我们要到该文件系统下先看看哪个目录很大。

首先应进入/home/目录下,判断哪个目录下的(或那个类型的)文件有可能增长很快,或者文件数目会增加很快。

然后,使用find命令查找。先看看是不是有15天以前的超过10M的大文件。

find  /home/  -size  +10000000c  -xdev  -mtime  +15

若有,则用compress将其压缩。若没有,则看是不是有很多同类型的小文件占用了过多的空间,比如.xml类型的文件:

find  /home/  -xdev  -name  *.xml  -mtime  +15

若有,则还要用compress压缩。

压缩所有查询结果:

find  /home/  -xdev  -name  *.xml  -mtime  +15  -exec  compress  {} \;

除了用compress压缩文件外,还可以将过期的文件暂时转移到其它文件系统中去。但这种方法我没有使用过。我担心如果将某个文件移走,会对某个应用产生影响。那样,就麻烦大了。

 

相信通过以上两种情况的分析,一般的这种问题都能解决了。但这只是权宜之计。最终的解决方法,除了删除旧的不用的文件外,只有扩展文件系统了。

阅读(3006) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~