谁能帮我弄清楚这个带大括号的“查找”命令在说什么?

谁能帮我弄清楚这个带大括号的“查找”命令在说什么?

我发现一些旧笔记,有人建议我运行以下命令来设置一些文件权限:

find /perl/lib/ -type f -exec chmod o+r \{\} \;

您是否知道\{\}该声明的部分在做什么?有必要吗?我在一些测试文件上测试了几次运行它,它似乎做了与删除反斜杠相同的事情:

find /u01/app/oracle/product/12102/perl/lib/ -type f -exec chmod o+r {} \;

您能提供的任何帮助将不胜感激。

答案1

反斜杠是转义字符(告诉 shell 按字面意思解释后面的字符)。正如您所发现的,它们是不必要的。 shell 将以相同的方式扩展这两个命令。

有人可能认为它们是必要的,因为大括号是保留字或者只是为了安全。但是,除非大括号内存在有效模式,否则不会发生大括号扩展,并且不会尝试命令分组,除非大括号之间存在带有空格的命令列表。

find/命令上下文中的大括号本身exec将被返回的每个文件名替换。

相关内容