linux svn 忽略列表,使用 find 命令时忽略 .svn 目录

使用 find 命令时忽略 .svn 目录

服务器运行过程/开发过程中, 可能出现需要查找一下最近一天内发生变化的文件这样的需求.

于是我们只需要使用:

find . -type f -mtime -1 -exec ls -ld {} \;

这个时候, 我们用到的svn就跳出来作怪的, 大量的svn文件, 让你几乎无法判断数据(svn 1.7后应该是在一个项目下只有根目录才有svn目录了), 这时候我们相当的第一个方式就是过滤掉 .svn 输出, 然后得出如下:

find . -type f -mtime -1 -exec ls -ld {} \; | egrep -v '\.svn'

实际上, 上述的操作是在 find 的结果中进行过滤,如果文件过多, 操作过程是相当低效的, 那 find 有没有更高效的内置方法呢?答案是显然的, 而且有两种:

1. 匹配完整的文件名(! -iwholename ‘*.svn*’):

find . ! -iwholename '*.svn*' -type f -mtime -1 -exec ls -ld {} \;

2. 匹配路径(! -path ‘*/.svn/*’):

find . ! -path '*/.svn/*' -type f -mtime -1 -exec ls -ld {} \;

而上面指令中出现的 ! 其实是 -not 选项的一个缩写.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值