从 cmd 行 unix 替换文件名中的空格

Aly*_*Aly 6 unix command-line filenames

嗨,我有一堆名称中带有空格的文件,有没有办法将它们转换为没有空格的新文件。例如,我有文件 Hello World.pdf,我想将其移动到 Hello_World.pdf。显然,对于一个文件,我可以使用 mv 命令,但我想对文件夹中的所有文件执行此操作。

谢谢

njd*_*njd 10

您可以为此使用trsed命令:

for file in *.pdf
do
    newname=$(echo $file | tr ' ' _)
    mv "$file" $newname
done
Run Code Online (Sandbox Code Playgroud)

请注意,这使用较新的 POSIX 语法进行命令替换:$( command )。
如果您使用的是非常老的 Bourne shell,则需要使用反引号:

newname=`echo $file | tr ' ' _`
Run Code Online (Sandbox Code Playgroud)