Właśnie z ciekawości zastanawiałem się, czy jest jakiś powód do dodatkowego miejsca, kiedy piszę ls
w katalogu Desktop. Porównać...
~/Desktop$ ls
file1 file2 file3
...do...
~/Documents$ ls
file1 file2 file3
Zauważ, że kiedy piszę ls
na pulpicie, dostaję dodatkowe miejsce na początku wiersza (nie jest to część nazwy pliku). Nie mogę znaleźć innej przykładowej lokalizacji, w której dostanę tę dodatkową przestrzeń na początku wiersza. Czy ktoś to dostaje? Czy jest powód?
Uwaga: używam wersji Ubuntu Bionic Beaver LTS i domyślnego terminala, który jest z nią dostarczany.
touch " "
), mam dwie spacje z przodu.ls -la
Zamiast tego uruchom lubfind -type f -printf "file: -%P-\n"
i podaj dane wyjściowe. Prawdopodobnie jest plik o charakterze niedrukowalnym. Kolorowanie plików również może potencjalnie wpłynąć na to, więc spróbuj\ls
lubdir
Odpowiedzi:
Dodatkowa spacja pojawia się, gdy masz potrzebne nazwy plików w katalogu
'
(np. Nazwy plików ze spacjami lub inne znaki specjalne).Po usunięciu „dziwnych” plików otrzymuję:
źródło
Jestem pewien, że
file1 file2 file3
nie jest to dokładnie to, co pokazano na ekranie. Pominąłeś cenne informacje (rzeczywiste nazwy plików), które mogą z łatwością być istotne.Zakładam, że masz nazwę pliku, która zawiera spację lub inny znak specjalny.
Nowsza wersja coreutils
ls
cytuje takie nazwy plików, zwykle w pojedynczych cudzysłowach. Ponadto, jeśli istnieje co najmniej jeden plik wymagający takiego cytowania, dodaje spację przed wszystkimi innymi nazwami plików, dzięki czemu wyrównują się „ładnie”, jeśli znajdują się pod sobą, to znaczy pojedynczy cudzysłów (apostrof) zignorowano dla wyrównania.Zobacz
--quoting-style
i-N
na stronie podręcznika,ls
aby uzyskać więcej szczegółowych informacji, oraz sekcję „Formatowanie nazw plików” na stronie informacyjnej, aby uzyskać jeszcze więcej szczegółów. Możesz np. Rozważyć aliasingls
dols -N
.źródło