查找:路径必须在表达式之前:

查找:路径必须在表达式之前:

我发现下面这一行这里

find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \; \;

它的本意是将当前目录中的每个文件夹分别 tar gzip 压缩。但运行它时会返回错误:

find: paths must precede expression:

关于此错误有一些帖子,但它们与此处使用的语法无关。

有谁知道是什么导致了这个错误?

答案1

我测试了一下,错误是由于第二点引起的\;

# Works fine
find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \;
# Errors out
find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \; \;

这可能是因为第一个转义符;结束了选项的命令-exec,而第二个转义符;现在成为命令的一部分find,并被视为路径。这会引发错误,因为-type表达式已被读取。

相关内容