“{} \;”是什么意思 在查找中是指(在 Linux 中)吗?

cod*_*ode 7 linux command-line find

有时我会看到这样的命令

find . -name * -exec ls -a {} \;
Run Code Online (Sandbox Code Playgroud)

我被要求执行此操作。

{} \;这里是什么意思?

小智 7

\;是一个;进给到程序(FIND)由\逃逸防止它由外壳(通常将分离命令)来处理。该-exec参数将所有内容解释为一个命令,直到插入;-exec内容结束。在-exec内容中,参数的{}意思是“在此处插入文件名”。因此,如果文件是“foo”和“bar”,它将执行“ls -a foo”然后执行“ls -a bar”。所以所有这些意义只意味着因为-exec存在。

它的-name *一部分可能是用*引号引起来的。如果它不在引号中,它会做非常不可预测的事情,因为所有文件名都将插入到*您拥有的位置,而这些名称可能会对这个命令产生不良影响。-name *为了更安全地运行此命令而离开(但我不知道您打算了解为什么在那里)。