有时我看到以下命令:
find . -name * -exec ls -a {} \;
我被要求执行此操作。
这{} \;
是什么意思?
另外,请查看explainshell了解其他此类问题。这是您的命令的输出。。
—
谷氨酰胺
-name *
比冗余更糟糕。由于*
未引用,因此Shell会将其扩展到当前文件夹中的文件名列表,其中空格会被错误地处理,从而导致意外结果或错误消息。另外,它find
具有许多功能,其中之一是列出文件。这避免了必须使用-exec
。例如,您可以使用find . -print
或find . -ls
。最后,有两种方法可以逃脱分号:就像使用反斜杠一样\;
,或者引用:';'
。使用任何您觉得更舒适的方式。
-name *
是多余的。