本教程的目的是展示有关如何删除或替换文件名中的空格的各种方法。Linux 系统上的某些工具可能无法正常处理包含空格的文件,例如,这会激励一些用户用下划线替换空格或完全删除它们。处理没有空格的文件要容易得多,因为您不必担心每次都转义文件名。在本教程中,您将了解如何在 Linux 中删除或替换文件名中的空格。
删除或替换文件名中的空格
以下所有示例都将在 Linux命令行上进行。打开终端并导航到包含要重命名的文件的目录,然后尝试以下一些命令以开始使用。
1、要删除单个文件中的空格并用下划线替换它们,可以使用以下命令:
$ myfile="some file.txt" ; mv "$myfile" $(echo $myfile | tr ' ' '_')
2、要完全删除空格,我们可以使用上面相同的命令,但使用tr和-d选项删除空格:
$ myfile="some file.txt" ; mv "$myfile" $(echo $myfile | tr -d ' ')
3、这是另一个可以从目录中的所有文件中删除空格的命令:
$ ls | grep " " | while read -r f; do mv -i "$f" `echo $f | tr -d ' '`; done
4、与上面相同的命令,但这次它将用下划线替换空格:
$ ls | grep " " | while read -r f; do mv "$f" `echo $f | tr ' ' '_'`; done
5、该detox命令将清除文件名中的各种奇怪字符。它的默认功能之一是用下划线替换空格。
$ detox my\ file.txt
OR
$ detox *
注:detox命令需要系统单独安装
6、如果您rename在 Linux 系统上安装了该实用程序,则可以使用一种非常简单的语法从所有文件中删除空格并用下划线替换它:
$ rename 's/\s/_/g' ./*.*
7、另一个通常不会默认安装在 Linux 上但可以很好地完成工作的实用程序是mmv. 以下命令将删除所有空格并用下划线替换它们:
$ mmv '* *' '#1_#2'
结束
在本教程中,我们了解了如何从 Linux 系统上的文件中删除空格。没有空格的文件更容易处理,因为它们与 Linux 上的更多工具兼容,而且我们在处理文件时不必记住转义文件名。无论您要重命名的文件很少还是几千个,本教程中的命令都可以立即完成重命名任务。