如何:用下划线替换文件名中的空格

壳牌Linux

在Unix环境中,命令解释器需要完成很多工作,实际上,许多系统甚至都没有安装桌面环境。 所以,在Linux中,您通常需要在终端上进行很多工作。 使用文件名和目录名时,有时名称中带有空格有时会很困难。 知道如何避免这些小问题将不是问题,但是的确,当他们没有这些空间时,它会更舒适...

如果你不知道 如何在终端上使用带空格的名称,或者要轻松删除这些空格在本文中,您将学习日常使用GNU / Linux时需要的一切,以使用户体验尽可能舒适。 从现在开始,名称的空格将不再是您的障碍...

如何使用空间

Linux名称空间

使用名称中的空格很简单,因此首先我将展示如何在目录中使用目录或文件 名称中的空格。 因此,所有对此有疑问的人都可以学习使用它,而不必担心碰到带有空格的名称。

  • 表示名称中有空格,您可以使用斜杠或反斜杠,即\。 例如,如果您要编写的名称是在图像“ RISC-V docs”中看到的名称,则可以编写“ RISC-V \ docs”(不带引号)。 这样,您将告诉Bash它是一个空格,而不是您为该命令输入了多个参数,并用空格分隔。
  • 你也可以使用 双引号«» 用空格将名称括起来,向Shell指示它们不是单独的参数,而是相同的名称。 例如,在上一个带有cd的示例中,如果您想使用空格进入该目录,则可以使用:
cd "RISC-V docs"

  • 另一把戏 是要先输入名称的第一个字母,然后按Tab键(Caps Lock上方的那个)。 这样,名称将自动完成。 如果有多个以相同的名称开头的名称,则此方法将不起作用,例如,如果存在“ RISC-V docs”而“ RISC-V isa”将不起作用。 是的,它在具有“ RISC-V文档”和“ RISC-I文档”的情况下会起作用,因为一旦您输入字符I,它就会知道它的名字...

现在这个 您可能会觉得它不实用,或者您不喜欢它 每次使用空格时都必须这样做。 因此,如果要消除它们,可以阅读以下部分...

如何替换空格

用下划线替换空格Linux

的确,在图形环境中,带有空格的名称在命名文件时更加舒适和令人愉悦。 但是对于终端来说,它并不那么实用。 因此,如果您不想按照上一节中的步骤操作,并希望 一劳永逸摆脱幸福的空间,您可以按照以下步骤操作:

  • 转到找到带有空格的名称的目录 您想用任何字符替换的字符。 在这种情况下,我使用了下划线,但是您可以将该符号替换为其他任何符号,只需修改命令即可。
  • 进入目录后,您可以使用以下命令: 将所有名称空间更改为_。 请注意,因为如果要使用空格保留名称,则应考虑使用此命令将其全部更改:
for file in *; do mv "$file" `echo $file | tr ' ' '_'`; done

  • 一一去尽管这不切实际,但是在您只想为单个名称而不是全部自动替换空格的情况下,可以使用以下命令:
mv nombre\ con\ espacios nombre_sin_espacios

  • 另一种选择是 使用脚本 只要您想用下划线替换空格,就可以调用该函数。 因此,您可以在任何目录中运行它,而无需在每次需要时都编写命令。 为此,您必须使用自己喜欢的文本编辑器并创建一个文件,例如,spaceskiller.sh,保存内容,为其提供执行权限,并将其输入到$ PATH环境变量中的路径中(例如:/ usr / bin),因此您仅需调用其名称,而不必指出.sh所在的路径。 好的,话虽如此,脚本的内容如下:
<pre>#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo no se renombró \""$f"\" porque \""$new"\" ya existe
    else
      echo renombrando "$f" a "$new"
    mv "$f" "$new"
  fi
fi
done</pre>

如果您选择了脚本并将其输入到$ PATH目录中的任何目录中,那么每次您进入目录时,要用下划线(或其他任何字符,如果您对其进行修改)替换空格,则只需要 运行:

./spaceskiller.sh

希望本教程对您有所帮助, 你可以留下你的评论 有任何疑问或贡献...


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   安德烈斯

    非常感谢你的脚本非常有用