如何替换目录中所有文件名中的字符串?(具体来说,我需要从目录中的所有文件名中删除"\#015"

Rya*_*yan 7 unix linux awk replace sed

目录(/root/path/)中的许多文件都附加了一个奇怪的字符串(\#015).帮我用常规名称替换它们,没有奇怪的字符串.

我需要:

/root/path/img1.png\#015
/root/path/img2.jpg
/root/path/img3.png\#015
Run Code Online (Sandbox Code Playgroud)

成为:

/root/path/img1.png
/root/path/img2.jpg
/root/path/img3.png
Run Code Online (Sandbox Code Playgroud)

你能帮我吗?

Ed *_*ton 5

for file in *\#015
do
   mv -- "$file" "${file%\#015}"
done
Run Code Online (Sandbox Code Playgroud)

你可能需要逃避"\".首先在tmp目录中尝试它.


Ste*_*eve 5

如果已rename安装,这将成为一项相当简单的任务:

rename 's/\\#015$//' /root/path/*\\#015
Run Code Online (Sandbox Code Playgroud)

您可以添加-f标志以强制覆盖现有文件(如有必要).