为什么在桌面目录中键入“ls”时会出现多余的空格?

Bar*_*art 28 command-line gnome-terminal ls

出于好奇,我想知道当我ls在桌面目录中键入时是否有额外空间的原因。相比...

~/Desktop$ ls
 file1 file2 file3
Run Code Online (Sandbox Code Playgroud)

...到...

~/Documents$ ls
file1 file2 file3
Run Code Online (Sandbox Code Playgroud)

请注意,当我ls在桌面上键入时,我会在行首(不是文件名的一部分)获得一个额外的空格。我找不到任何其他示例位置,我在该行的开头获得了这个额外的空间。有没有其他人得到这个?有原因吗?

注意:我使用的是 Ubuntu Bionic Beaver LTS 版本和它附带的默认终端。

muc*_*lux 86

当您的目录中有文件名需要'它们时,会出现额外的空格(例如,带有空格或其他特殊字符的文件名)。

~/mytmp$ ls
 a           'file(abc)'         proyecto3.csv   test         Test.sh
 b           'file(ab,c?).mp4'   rootfile        Test1.txt    Test.zip
 F26         'file(abc?).mp4'    scr             Test2.test   vowels
 Feb          guess              script          Test2.txt
'Feb 26 xx'   hw                 something       test.rar
Run Code Online (Sandbox Code Playgroud)

删除“奇怪”文件后,我得到:

~/mytmp$ ls
a    guess  proyecto3.csv  script     test        Test2.txt   Test.sh
b    hw     rootfile       something  Test1.txt   test.rar    Test.zip
F26  loop   scr            speak      Test2.test  testscript  vowels
Run Code Online (Sandbox Code Playgroud)


egm*_*ont 53

我敢肯定,file1 file2 file3没有什么确切地在屏幕上显示。您省略了可能很容易相关的宝贵信息(实际文件名)。

我的假设是您的文件名包含空格或其他特殊字符。

较新版本的 coreutilsls引用此类文件名,通常用单引号。另外,如果至少有一个文件需要这样的引用,它会在所有其他文件名之前添加一个空格,以便它们在碰巧位于彼此下方时“很好地”对齐,即单引号(撇号)是忽略对齐。

有关更多详细信息,请参阅--quoting-style-N手册ls,以及其信息页面中的“格式化文件名”部分以获取更多详细信息。例如,您可能会考虑别名lsls -N.