linux下如何去掉目录名前的空格?

linux下如何去掉目录名前的空格?

这是我的 linux 命令及其生成的输出:

我给出了 ls -l 来列出所有提供以下输出的文件:

dr-xr-xr-x  5 rsa guest  4096 Jul  3 11:23 tsmc_40g_mixsig_7z_0p9v_2p5v
drwxrwxr-x  2 rsa guest  4096 Jul  3 11:33  tsmc_40lp_mixsig_7z_1p1v_2p5v

在上面的第二行中,目录在名称开始之前创建了空格。如何使用linux命令删除目录名称之前的空格?

答案1

您可以将其括在单引号中: mv ' tsmc_40g_mixsig_7z_0p9v_2p5v' tsmc_40g_mixsig_7z_0p9v_2p5v 或者您可以使用反斜杠转义空格: mv \ tsmc_40g_mixsig_7z_0p9v_2p5v tsmc_40g_mixsig_7z_0p9v_2p5v

在许多 shell 中,您可以使用制表符完成来使其更容易:

mv ' <TAB>在 bash 或 zsh 的许多配置中将变成:mv ' tsmc_40g_mixsig_7z_0p9v_2p5v'尽管这可能不起作用,具体取决于您的配置。您键入mv一个空格、一个单引号、另一个空格,然后按 Tab 键,它应该会显示建议,然后您可以再次按 Tab 键来完成它。

答案2

如果您已经安装了该rename实用程序,则可以按如下方式清除这些前导空格:

rename -v '/\S/ and s/^\s+//' ./*

我们在当前目录中的所有文件上运行该实用程序,并确保它至少有一个非空白字符,然后继续修剪前导空格。

-v选项将回显正在 mv-ed 的文件名。

答案3

我已经尝试过下面的一种,它对我有用。

 mv \ tsmc_40lp_mixsig_7z_1p1v_2p5v tsmc_40lp_mixsig_7z_1p1v_2p5v

相关内容