Чому виникає додатковий простір, коли я набираю "ls" у каталозі Desktop?


27

Щойно з цікавості мені було цікаво, чи є причина в додатковому просторі, коли я друкую lsв каталозі Desktop. Порівняти ...

~/Desktop$ ls
 file1 file2 file3

... до ...

~/Documents$ ls
file1 file2 file3

Зауважте, що при введенні lsна робочий стіл я отримую додаткове місце на початку рядка (не частина імені файлу). Я не можу знайти жодного іншого прикладу, де я отримаю цей додатковий простір на початку рядка. Хтось ще отримує це? Чи є причина?

NB: Я використовую реліз Ubuntu Bionic Beaver LTS та термінал за замовчуванням, який постачається з ним.


У мене цього немає. Якщо я створю файл з простою пробілом, як ім'я ( touch " "), у мене є два пробіли спереду.
pLumo

6
Запустіть ls -laзамість цього або find -type f -printf "file: -%P-\n"надайте вихід. Ймовірно, є файл з недрукувальним символом. Забарвлення файлів також потенційно може вплинути на неї, тому спробуйте \lsабо dirкомандуйте
Сергій Колодяжний

Я не міг побачити жодного файлу з символами, які не можна друкувати, коли я спробував ваші перші 2 пропозиції. У мене все ще є місце, коли я намагаюся \ ls, але не тоді, коли я використовую dir ...
Барт

35
Представте свій фактичний результат.
Гонки легкості з Монікою

Відповіді:


85

Додатковий простір з’являється, коли у вашому каталозі потрібні імена файлів, які потребують 'навколо них (наприклад, імена файлів із пробілами чи інші спеціальні символи).

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

Дякую за пояснення - це мені звучить правильно. Що мене кинуло - це те, що додатковий простір на початку рядка не обов’язково повинен бути перед файлом, у якому є спеціальні символи. Але я здогадуюсь, що це робиться для того, щоб презентація була чіткішою в терміналі. Ще раз дякую
Барт

53

Я впевнений, що file1 file2 file3це не те, що саме відображається на екрані. Ви пропустили дорогоцінну інформацію (фактичні імена файлів), яка може бути легко актуальною.

Моє припущення, що у вас є ім’я файлу, який містить пробіл або інший спеціальний символ.

Більш нова версія lsтакої назви файлів coreutils , як правило, в одиничних лапках. Плюс, якщо є хоча б один файл, який вимагає такого цитування, він додає простір перед усіма іншими іменами, щоб вони вирівнялися «добре», якщо вони трапляються один під одним, тобто єдина лапка (апостроф) ігнорується для вирівнювання.

Дивіться --quoting-styleі -Nв ручний сторінці lsще кілька деталей, і в розділі «Форматування імен файлів» у своїй інформаційній сторінці для ще більшого кількість деталей. Ви могли б , наприклад , розглянути питання накладення lsна ls -N.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.