从 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