find命令中 ls_linux创建目录命令_find命令查找文件(6)

电脑杂谈  发布时间:2017-04-06 21:03:13  来源:网络整理

find命令的例子

我们已经介绍了f i n d命令的基本选项,下面给出f i n d命令的一些其他的例子。

为了匹配$ H O M E目录下的所有文件,下面两种方法都可以使用:

$ find $HOME -print

$ find ~ -print

为了在当前目录中查找s u i d置位,文件属主具有读、写、执行权限,并且文件所属组的用

户和其他用户具有读和执行的权限的文件,可以用:

$ find . -type f -perm 4755 -print

为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径,可以用:

$ find / -type f -size 0 -exec ls -l {} \;

为了查找/ v a r / l o g s目录中更改时间在7日以前的普通文件,并删除它们,可以用:

$ find /var/logs -type f -mtime 7 -exec rm {} \;

为了查找系统中所有属于a u d i t组的文件,可以用:

$find /-name -group audit -print

我们的一个审计系统每天创建一个审计日志文件。日志文件名的最后含有数字,这样我

们一就可以看出哪个文件是最新的,哪个是最旧的。A d m i n . l o g 文件编上了序号:

a d m i n . l o g . 0 0 1、a d m i n . l o g . 0 0 2等等。下面的f i n d命令将删除/ l o g s目录中访问时间在7日以前、

含有数字后缀的a d m i n . l o g文件。该命令只检查三位数字,所以相应日志文件的后缀不要超过

9 9 9。

$ find /logs -name 'admin.log[0-9][0-9][0-9] '-atime 7 -exec rm {} \;

为了查找当前文件系统中的所有目录并排序,可以用:

$ find . -type d -print -local -mount |sort

为了查找系统中所有的r m t磁带设备,可以用:

$ find /dev/rmt -print

xargs

在使用f i n d命令的- e x e c选项处理匹配到的文件时, f i n d命令将所有匹配到的文件一起传递

给e x e c执行。不幸的是,有些系统对能够传递给e x e c的命令长度有限制,这样在f i n d命令运行

几分钟之后,就会出现溢出错误。错误信息通常是"参数列太长"或"参数列溢出"。这就是

x a rg s命令的用处所在,特别是与f i n d命令一起使用。F i n d命令把匹配到的文件传递给x a rg s命

令,而x a rg s命令每次只获取一部分文件而不是全部,不像- e x e c选项那样。这样它可以先处理

最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用- e x e c选项会

为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次

执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用

x a rg s命令则只有一个进程。另外,在使用x a rg s命令时,究竟是一次获取所有的参数,还是分

批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参

数来确定。

让我们来看看x a rg s命令是如何同f i n d命令一起使用的,并给出一些例子。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-39877-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 孔清涛
      孔清涛

      其实中国手机性能质量都不比苹果差

    热点图片
    拼命载入中...