列出最近5分钟内修改过的所有文件,但不包括 .svn 目录。

26

我想列出在最近5分钟内修改的所有文件,但不包括.svn目录。

我已经编写了以下脚本,似乎没有遵守任何-atime-ctime参数。

find . -atime -5m -type d -name .svn -prune -o -type f -print

我感觉自己在钻一个额外的眼睛可以轻松发现的洞。

3个回答

33

尝试不同顺序的参数。 你的命令:

  • 如果一个条目在五分钟内被访问是一个目录名为.svn,则忽略该条目
  • 否则,对于所有其他情况,如果它是一个文件,则打印名称

以下命令在进入目录之前修剪.svn目录:

find . -type d -name .svn -prune -o -mmin -5 -type f -print
如果一个文件是一个目录,并且名称为`.svn`,则忽略它并且不要进入其中。否则,如果它在5分钟内被修改(使用`-mmin`选项)并且是一个文件,则打印文件名。

谢谢,这很好地解决了问题。解释对我理解我做错了什么非常重要。 - user888750

1

-atime 查看最后访问时间。我想你要找的是 -mmin。我只有 cygwin 手边,所以无法测试它...


1

-and 假定在 -atime-type d 之间有一个 -and,因此您只会修剪早于 5 分钟的 SVN 目录。请尝试:

find . -type d -name .svn -prune -o -type f -mmin 5 -print

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接