vid*_*rlo 24 command-line ls 18.04
升级到 18.04 后,从 16.04 开始,所有带空格的文件名都显示为'file name'. 以前它只是file name. 没有空格的文件名正常显示:
$ ls
bar 'foo bar'
Run Code Online (Sandbox Code Playgroud)
虽然它不会以任何方式影响功能,但我发现这在视觉上很混乱。
我bash用作外壳。
如何删除''带空格的文件名周围的显示?
Win*_*nix 33
这种ls行为变化是从 2016 年开始的,但最终进入了 Ubuntu。
要恢复旧的行为,请使用ls -N.
您可以选择使用环境变量:
QUOTING_STYLE=literal ls
Run Code Online (Sandbox Code Playgroud)
将其设为别名,或export QUOTING_STYLE=literal在您的设置中设置~/.bashrc以实现旧行为。
您可以阅读上面的链接以获取更多详细信息,包括这一切发生的时间、地点、原因和方式的历史。在ls 更改的作者下面有很多评论,他证明了新行为的合理性:
关于变化的几点说明。
- 它是在 coreutils v8.25 中引入的,并且在 v8.26 中改进了对齐
- 它仅在输出到终端时发生,因此不会破坏脚本
- 它消除了用户对包含空格的文件的输出的歧义
- 它清理输出,因此复制和粘贴是安全的
- 输出现在对于复制并粘贴回 shell始终有效
- 用户可以通过添加别名
-N来恢复旧格式ls
Rav*_*ina 12
它ls被引用输出,运行:
ls -N
Run Code Online (Sandbox Code Playgroud)
无需任何引用即可获得输出。
man ls
Run Code Online (Sandbox Code Playgroud)
-N, --文字
打印条目名称而不引用
如果需要,请为其别名:
echo "alias ls='ls -N'" >> .bashrc
Run Code Online (Sandbox Code Playgroud)