Po aktualizacji do 18.04, od 16.04, wszystkie nazwy plików ze spacjami są oznaczone jako 'file name'
. Wcześniej było to po prostu file name
. Nazwy plików bez spacji są wyświetlane normalnie:
$ ls
bar 'foo bar'
Chociaż nie wpływa to w żaden sposób na funkcjonalność, wydaje mi się, że jest to zagracenie.
Używam bash
jako powłoki.
Jak mogę usunąć ''
pokazywanie nazw plików ze spacjami?
command-line
18.04
ls
vidarlo
źródło
źródło
ls
do zarządzania plikami w swoich skryptach, robisz to źle. Dlaczego nie powinieneś analizować danych wyjściowychls
i Dlaczego nie parsowaćls
(i co zamiast tego zrobić)?ls
Autor przynajmniej rozwiązuje niektóre problemy. Wiedząc, że autor jest aktywnie zaangażowany w Stack Exchange (link w mojej odpowiedzi), łatwiej byłoby zasugerować przyszłe ulepszenia. Następnie komentarze innych użytkowników zachęciłyby autora do wdrożenia sugestii.Odpowiedzi:
Ta
ls
zmiana zachowania nastąpiła od 2016 roku, ale w końcu przechodzi na Ubuntu.Aby odzyskać stare zachowanie, użyj
ls -N
.Opcjonalnie możesz użyć zmiennej środowiskowej:
Ustaw go jako alias lub ustaw
export QUOTING_STYLE=literal
w swoim,~/.bashrc
aby osiągnąć stare zachowanie.Możesz przeczytać powyższy link, aby uzyskać więcej informacji, w tym historię kiedy, gdzie, dlaczego i jak to wszystko się wydarzyło. Istnieje wiele komentarzy pod hasłem autora zmian, w których uzasadnia nowe zachowanie:
źródło
To
ls
cytuje dane wyjściowe, uruchom:aby uzyskać wynik bez cytowania.
Alias, jeśli chcesz:
źródło