Perché c'è uno spazio extra quando digito "ls" nella directory Desktop?


27

Solo per curiosità, mi chiedevo se c'è un motivo per lo spazio extra quando scrivo lsnella directory Desktop. Confrontare...

~/Desktop$ ls
 file1 file2 file3

...a...

~/Documents$ ls
file1 file2 file3

Nota che quando scrivo lssul desktop ottengo uno spazio aggiuntivo all'inizio della riga (non parte del nome file). Non riesco a trovare un'altra posizione di esempio in cui ottengo questo spazio aggiuntivo all'inizio della riga. Qualcun altro lo capisce? C'è una ragione?

NB: sto usando Ubuntu Bionic Beaver LTS versione e il terminale predefinito fornito con esso.


Non ho questo Se creo un file con solo uno spazio come nome ( touch " "), ho due spazi davanti.
pLumo

6
Eseguire ls -lainvece o find -type f -printf "file: -%P-\n"e fornire l'output. Probabilmente c'è un file con carattere non stampabile. Anche la colorazione dei file potrebbe potenzialmente influenzarlo, quindi prova \lso dirordina
Sergiy Kolodyazhnyy

Non ho potuto vedere alcun file con caratteri non stampabili, quando ho provato i tuoi primi 2 suggerimenti. Ho ancora uno spazio quando provo, ma non quando uso dir ...
Bart

35
Presenta il tuo output effettivo .
Corse di leggerezza con Monica

Risposte:


85

Lo spazio aggiuntivo viene visualizzato quando nella directory sono presenti nomi di file che richiedono di essere 'racchiusi (ad esempio nomi di file con spazi o altri caratteri speciali).

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

Dopo aver rimosso i file "strani" ottengo:

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

Grazie per la spiegazione - mi sembra corretto. Ciò che mi ha gettato è che lo spazio extra all'inizio della riga non deve necessariamente essere davanti al file che ha i caratteri speciali. Ma immagino che questo sia fatto per rendere più chiara la presentazione nel terminale. Grazie ancora
Bart

53

Sono abbastanza sicuro file1 file2 file3che non sia esattamente ciò che viene mostrato sul tuo schermo. Hai omesso informazioni preziose (i nomi dei file effettivi) che potrebbero essere facilmente pertinenti.

La mia ipotesi è che tu abbia un nome file che contiene uno spazio o un altro carattere speciale.

La versione più recente di coreutils lscita tali nomi di file, in genere tra virgolette singole. Inoltre, se c'è almeno un file che richiede tale quotazione, aggiunge uno spazio davanti a tutti gli altri nomi di file in modo che si allineino "bene" se si trovano uno sotto l'altro, cioè il segno di virgolette singolo (apostrofo) è ignorato per l'allineamento.

Vedere --quoting-stylee -Nnella pagina di manuale di lsper ulteriori dettagli e la sezione "Formattazione dei nomi dei file" nella sua pagina di informazioni per ulteriori dettagli. Ad esempio potresti prendere in considerazione l'idea di lsfare un alias ls -N.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.