Імена файлів з пробілом, який відображається як "ім'я файлу" після оновлення до 18.04


23

Після оновлення до 18.04 з 16.04 усі імена файлів із пробілами відображаються як 'file name'. Раніше це було просто file name. Імена файлів без місця відображаються зазвичай:

$ ls
 bar  'foo bar'

Хоча це ніяк не впливає на функціональність, я вважаю це візуально незручним.

Я використовую bashяк оболонку.

Як я можу видалити ''показ назв файлів із пробілами?


4
Чому ви хочете їх видалити, вони не є частиною імені файлу і можуть допомогти вам керувати іменами файлів з пробілами в командному рядку або в скриптах.
Сорен А

2
Мені відомо, що вони не входять до назви файлу. Але вони зорові безладні, і мені вони не потрібні .
vidarlo

4
@SorenA Якщо ви lsкеруєте файлами у своїх сценаріях, ви робите це неправильно. Чому ви не повинні розбирати висновкиls та чому б не розбирати ls(і що робити замість цього)?
десерт

2
@ WinEunuuchs2Unix Це робить полегшення вставки, але як згадується у вашій відповіді, воно не змінює поведінку, коли не виходить на термінал ...
vidarlo

2
@vidarlo lsАвтор принаймні вирішує деякі проблеми. Знаючи, що автор бере активну участь у обміні стеками (посилання на мою відповідь), можна було б легше запропонувати майбутні вдосконалення. Тоді коментарі із коментарями інших користувачів спонукають автора до реалізації пропозицій.
WinEunuuchs2Unix

Відповіді:


33

Ця lsзміна поведінки була з 2016 року, але, нарешті, робить шлях до Ubuntu.

Щоб повернути старе використання поведінки ls -N.

За бажанням можна використовувати змінну середовища:

QUOTING_STYLE=literal ls

Зробіть це псевдонімом або встановіть export QUOTING_STYLE=literalу своєму, ~/.bashrcщоб досягти старої поведінки.

Ви можете прочитати посилання вище для отримання більш детальної інформації, включаючи історію, коли, де, чому і як це все сталося. Під автором ls змін є досить багато коментарів, де він виправдовує нову поведінку:

Кілька пунктів про зміну.

  • Він був введений у coreutils v8.25, а вирівнювання покращилось у v8.26
  • Це трапляється лише при виході на термінали, щоб не порушувати сценарії
  • Він роз’єднує вихід для користувачів для файлів, що містять пробіли
  • Це дезінфікує вихід, тому його можна копіювати та вставляти
  • Вихідні дані завжди вірні для копіювання та вставки в оболонку
  • Користувачі можуть повернутися до старого формату, додавши -Nсвій lsпсевдонім

12

Це те, lsщо цитує результат, запустіть:

ls -N

щоб отримати вихід без жодного цитування.

man ls

-N, --літеральний

друкувати імена записів без цитування


Псевдонім це, якщо ви хочете:

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