发现问题: -print 有效,但 -exec /usr/bin/ls -l '{}' \; 无效

发现问题: -print 有效,但 -exec /usr/bin/ls -l '{}' \; 无效

为什么

find . -mtime 1 -print

显示两个最近修改的文件,但是

find . -mtime 1  -exec /usr/bin/ls -l '{}' \;

或者

find . -mtime 1  -exec /usr/bin/ls -l {} \;

处理正确但没有显示任何内容?

编辑:它现在正在工作 - 所有三个都会产生预期的输出!感谢您的所有建议,但仍然不知道是什么阻止了最后两种形式的工作。

答案1

您发现了两个空目录而不是两个文件。通过使用ls -ld代替来测试这个理论ls -l,它将列出目录条目而不是其内容:

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

或者如果你真的只想要文件,

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

请注意,-mtime 1匹配的项目最后更改是在一天前,不多也不少。如果您想要在 24 小时内修改项目,您可以使用-mtime -1

相关内容