find命令学习(6)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-26 11:00 点击:

  顺便说一下,在上面的例子中cpio命令使用了C65536选项,我本可以使用B选项,不过这样每块的大小只有512字节,而使用了C65536选项后,块的大小变成了64K字节(65536/1024)。

 

使用exec或ok来执行shell命令

       当匹配到一些文件以后,可能希望对其进行某些操作,这时就可以使用-exec选项。一旦find命令匹配到了相应的文件,就可以用-exec选项中的命令对其进行操作(在有些操作系统中只允许-exec选项执行诸如ls或ls-l这样的命令)。大多数用户使用这一选项是为了查找旧文件并删除它们。这里我强烈地建议你在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

     exec选项后面跟随着所要执行的命令,然后是一对儿{},一个空格和一个\,最后是一个分号。

  为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

  为了用ls-l命令列出所匹配到的文件,可以把ls-l命令放在find命令的-exec选项中,例如:

  $ find . -type f -exec ls-l {} \;

  -rwxr-xr-x      10 root   wheel            1222       Jan  4     1993       ./sbin/C80

  -rwxr-xr-x      10 root   wheel            1222       Jan  4     1993       ./sbin/Normal

  -rwxr-xr-x      10 root   wheel            1222       Jan  4     1993       ./sbin/Revvid

  上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls-l命令将它们列出。

  为了在/logs目录中查找更改时间在5日以前的文件并删除它们,可以用:

  $ find logs -type  f -mtime +5 -exec rm {} \;

  记住,在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!

  当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。在下面的例子中,find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

  $ find . -name “*.LOG” -mtime +5 -ok rm {} \;

  <rm  … ./nets.LOG> ?y

  按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个rounder用户。

  $ find /etc -name “passwd*” -exec grep “rounder” {} \;

  rounder:JL9TtUqk8EHwc:500:500::/home/apps/nets/rounder:/bin/sh

 

 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • /etc/fstab 详解
  • nginx主主集群
  •  LVS-NAT和LVS-DR模式的实现详解
  •  RHCE考试之磁盘配额
  • 学习笔记:ACL详解
  • suse linux双网卡双网关配置
  •  LVM逻辑卷管理器
  •  Nginx主主负载均衡架构
  • ubuntu学习Mysql

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1