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

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

出于好奇,我想知道当我ls在桌面目录中输入时是否有多余的空格的原因。比较...

~/Desktop$ ls
 file1 file2 file3

...到...

~/Documents$ ls
file1 file2 file3

请注意,当我在桌面上输入时,ls行首会出现一个额外的空格(不是文件名的一部分)。我找不到任何其他示例位置,在行首会出现这个额外的空格。其他人也遇到过这种情况吗?有什么原因吗?

注意:我正在使用 Ubuntu Bionic Beaver LTS 版本及其附带的默认终端。

答案1

'当目录中的文件名需要在周围添加空格时(例如,文件名中带有空格或其他特殊字符),就会出现多余的空格。

~/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

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

~/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

答案2

我很确定file1 file2 file3不是确切地屏幕上显示。您忽略了可能与之相关的宝贵信息(实际文件名)。

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

新版 coreutilsls会引用这些文件名,通常用单引号。另外,如果至少有一个文件需要引用,它会在所有其他文件名前面添加一个空格,这样如果它们恰好位于彼此下方,它们就会“很好地”对齐,也就是说,对齐时会忽略单引号(撇号)。

参见--quoting-style-N手动的页面中ls提供了更多详细信息,其中的“格式化文件名”部分信息页面以了解更多详细信息。例如,您可以考虑将别名ls设为ls -N

相关内容