这是我的 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