1

我们有一个使用 find 命令的脚本,如下所示(删除一些特殊目录以外的旧文件)

find /data/foo -mtime 30 -and -not -samefile /data/foo -and -not -samefile /data/foo/specialdir -delete

现在,在多台机器上使用相同的脚本,其中一些没有 /data/foo/specialdir 可用。这会导致错误“find: /data/foo/specialdir: No such file or directory”。

我们可以在那里创建那个目录,但是如果 xyz 不存在,还有其他方法可以让“-not -samefile xyz”(或类似的东西)工作吗?

兄弟,图科

编辑:在原始问题的命令末尾忘记了 -delete

4

1 回答 1

1

你可以把它变成一个两线:

test -d /data/foo/specialdir || test_specialdir='-and -not -samefile /data/foo/specialdir'
find /data/foo -mtime 30 -and -not -samefile /data/foo "$test_specialdir"
于 2012-04-10T12:42:25.143 回答