![升级到 18.04 后,文件名中带有空格显示为“文件名”](https://linux22.com/image/1162124/%E5%8D%87%E7%BA%A7%E5%88%B0%2018.04%20%E5%90%8E%EF%BC%8C%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%AD%E5%B8%A6%E6%9C%89%E7%A9%BA%E6%A0%BC%E6%98%BE%E7%A4%BA%E4%B8%BA%E2%80%9C%E6%96%87%E4%BB%B6%E5%90%8D%E2%80%9D.png)
从 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