📌  相关文章
📜  linux用下划线替换目录中所有文件的空格-Shell-Bash(1)

📅  最后修改于: 2023-12-03 14:44:00.261000             🧑  作者: Mango

Linux用下划线替换目录中所有文件的空格 - Shell-Bash

如果你的Linux目录中有很多文件名含有空格,你将非常不方便地处理这些文件,因为在Linux中,空格被视为命令参数分隔符。因此,建议在Linux中用下划线替换文件名中的空格。

以下是用Shell-Bash脚本程序实现此功能的步骤:

步骤1:使用cd命令改变到包含文件的目录中,例如:

cd /home/user/my-folder/

步骤2:编写下面的脚本并执行它(确保你已经登录为超级用户):

#!/bin/bash

for file in *\ *
do
    filename="${file// /_}"
    if [ "$file" != "$filename" ]
    then
        mv -i "$file" "$filename"
    fi
done

解释:

  • 第一行告诉系统这是一个bash脚本;
  • 第二行使用for循环来遍历所有包含空格的文件名;
  • 第三行用一个变量filename替换所有空格为下划线,存储替换后的文件名;
  • 第四行检查替换后的文件名是否与原文件名不同;
  • 第五行使用mv命令重命名。

步骤3:运行脚本程序:

bash script.sh

注意:

  1. 如果你使用像Ubuntu等其他系统,请先将“-i”选项从mv命令中删除。 此选项将提示您在重命名之前询问每个文件;
  2. 这个脚本程序可能会引起一些不必要的更改,所以请在运行之前先做好备份。
返回的markdown格式
# Linux用下划线替换目录中所有文件的空格 - Shell-Bash

如果你的Linux目录中有很多文件名含有空格,你将非常不方便地处理这些文件,因为在Linux中,空格被视为命令参数分隔符。因此,建议在Linux中用下划线替换文件名中的空格。

以下是用Shell-Bash脚本程序实现此功能的步骤:

步骤1:使用cd命令改变到包含文件的目录中,例如:

``` bash
cd /home/user/my-folder/

步骤2:编写下面的脚本并执行它(确保你已经登录为超级用户):

#!/bin/bash

for file in *\ *
do
    filename="${file// /_}"
    if [ "$file" != "$filename" ]
    then
        mv -i "$file" "$filename"
    fi
done

解释:

  • 第一行告诉系统这是一个bash脚本;
  • 第二行使用for循环来遍历所有包含空格的文件名;
  • 第三行用一个变量filename替换所有空格为下划线,存储替换后的文件名;
  • 第四行检查替换后的文件名是否与原文件名不同;
  • 第五行使用mv命令重命名。

步骤3:运行脚本程序:

bash script.sh

注意:

  1. 如果你使用像Ubuntu等其他系统,请先将“-i”选项从mv命令中删除,此选项将提示您在重命名之前询问每个文件;
  2. 这个脚本程序可能会引起一些不必要的更改,所以请在运行之前先做好备份。