我知道一些真正的perl基础知识,并且我一直在使用这个衬垫来重命名文件:
find . -type f -exec perl -e 'rename($_,lc) for @ARGV' {} \;
find将文件列表传递给perl one liner,然后将它们重命名为小写 - 但是{}
为什么?
答案 0 :(得分:11)
'{}
'参数是“find”命令的一部分,而不是“perl”命令。
根据find man page documentation,令牌“{}
”将替换为正在处理的当前文件的名称,因此“exec”参数的目标可以使用它,这种情况,“perl -e ...
”。
答案 1 :(得分:3)
它来自find,并将被找到的文件名替换。它将执行perl,如:
perl -e 'rename($_,lc) for @ARGV'
文件名