重命名所有文件并将连字符 - 替换为下划线 _

mik*_*e87 3 linux bash centos

所以我在目录中有一堆文件,pdf,docx 等,我试图重命名它们并将破折号“”替换-为下划线“ _”。

示例:700006233-20161026092752.pdf>>700006233_20161026092752.pdf

这是我正在使用的代码,但似乎不起作用。

$ for file in /directory/*; do echo mv "$file" "$(echo $file | sed 's/-/_/g')" ; done
Run Code Online (Sandbox Code Playgroud)

GAD*_*D3R 5

使用rename

rename "s/-/_/g" *
Run Code Online (Sandbox Code Playgroud)

mv "$file" "${file//-/_}"或者在循环中使用for

  • 其中第二个没有提到删除“echo” - 这是没有更改任何文件名的主要原因 (3认同)