请告知以下命令出了什么问题
find /tmp/dir -name "* *" -type f | rename 's/*/fixed_/g'
备注-我更喜欢用一个命令而不是循环语法来做到这一点
我想要的是通过在每个文件之前添加名称fixed_重命名/ tmp / dir下的所有文件
例如(文件)
Fevc.txt
Ddve.txt
应重命名为:
fixed_Fevc.txt
fixed_Ddve.txt
临时注意:出了点问题-重命名模式无法处理带有路径的文件名;我正在修复
您的命令中有两件事是错误的:
find /tmp/dir -name "* *" -type f | rename 's/*/fixed_/g'
在-name "* *"
这不是你想要的,正确的-比赛只中有空格的文件名?
该rename
模式是错误的两种方式
s///g
)fixed_
。您想用来“替换”“前0个字符” fixed_
。这是该行的开头,与匹配^
。我们可以省略掉,g
因为每行只需要替换一次即可。放在一起,看起来像这样:
find /tmp/dir -type f | rename 's/^/fixed_/'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句