升级到 18.04 后,文件名中带有空格显示为“文件名”

升级到 18.04 后,文件名中带有空格显示为“文件名”

从 16.04 升级到 18.04 后,所有带空格的文件名都显示为'file name'。 以前只是file name。 没有空格的文件名会正常显示:

$ ls
 bar  'foo bar'

虽然这不会以任何方式影响功能,但我发现这在视觉上很混乱。

我用作bash外壳。

如何删除''带有空格的文件名的显示?

答案1

这种ls行为改变自 2016 年起但最终还是进入了 Ubuntu。

要恢复旧的行为,请使用ls -N

您也可以选择使用环境变量:

QUOTING_STYLE=literal ls

使其成为别名,或设置export QUOTING_STYLE=literal~/.bashrc实现旧的行为。

您可以阅读上面的链接了解更多详细信息,包括这一切发生的时间、地点、原因和方式。ls 更改的作者他为新行为辩解道:

关于这一变化的几点。

  • 它是在 coreutils v8.25 中引入的,并且在 v8.26 中改进了对齐
  • 它仅在输出到终端时发生,因此不会破坏脚本
  • 它消除了用户对包含空格的文件的输出歧义
  • 它会净化输出,以便安全地复制和粘贴
  • 输出现在总是有效的复制并粘贴回 shell
  • -N用户可以通过添加ls别名来恢复旧格式

答案2

就是ls引用输出,运行:

ls -N

获取不带任何引用的输出。

man ls

-N,——文字

打印条目名称而不加引号


如果需要,可以使用别名:

echo "alias ls='ls -N'" >> .bashrc

相关内容