在perl -e行之后花括号的目的是什么

时间:2011-08-18 17:01:05

标签: perl find

我知道一些真正的perl基础知识,并且我一直在使用这个衬垫来重命名文件:

find . -type f -exec perl -e 'rename($_,lc) for @ARGV' {} \;

find将文件列表传递给perl one liner,然后将它们重命名为小写 - 但是{}为什么?

2 个答案:

答案 0 :(得分:11)

'{}'参数是“find”命令的一部分,而不是“perl”命令。

根据find man page documentation,令牌“{}”将替换为正在处理的当前文件的名称,因此“exec”参数的目标可以使用它,这种情况,“perl -e ...”。

答案 1 :(得分:3)

它来自find,并将被找到的文件名替换。它将执行perl,如:

  

perl -e 'rename($_,lc) for @ARGV' 文件名