I nomi di file con lo spazio che appare come 'nome file' dopo l'aggiornamento a 18.04


23

Dopo un aggiornamento alla 18.04, dalla 16.04, tutti i nomi di file con spazi vengono visualizzati come 'file name'. In precedenza era semplicemente file name. I nomi dei file senza spazio vengono visualizzati normalmente:

$ ls
 bar  'foo bar'

Anche se non influisce in alcun modo sulla funzionalità, trovo questo disordine visivamente.

Uso bashcome shell.

Come posso rimuovere la ''visualizzazione dei nomi dei file con spazi?


4
Perché vuoi rimuoverli, non fanno parte del nome file e potrebbero aiutarti a gestire i nomi dei file con spazi sulla riga di comando o negli script.
Soren A

2
Sono consapevole che non fanno parte del nome del file. Ma sono disordine visivo e non ne ho bisogno .
vidarlo,

4
@SorenA Se usi lsper gestire i file nei tuoi script, stai sbagliando. Perché non dovresti analizzare l'output dils e Perché non analizzare ls(e cosa fare invece)?
dessert

2
@ WinEunuuchs2Unix Rende più facile incollare, ma come menziona la tua risposta, non cambia il comportamento quando non si invia al terminale ...
vidarlo

2
@vidarlo L' lsautore sta almeno affrontando alcuni dei problemi. Sapendo che l'autore è attivamente coinvolto in Stack Exchange (il link nella mia risposta) si potrebbe più facilmente suggerire miglioramenti futuri. Quindi commentare i voti di altri utenti incoraggerebbe l'autore a implementare suggerimenti.
WinEunuuchs2Unix

Risposte:


33

Questo lscambiamento di comportamento è stato dal 2016, ma finalmente si sta facendo strada in Ubuntu.

Per recuperare il vecchio comportamento utilizzare ls -N.

Opzionalmente puoi usare una variabile ambientale:

QUOTING_STYLE=literal ls

Trasformalo in un alias o imposta il export QUOTING_STYLE=literaltuo ~/.bashrcper ottenere il vecchio comportamento.

Puoi leggere il link qui sopra per maggiori dettagli tra cui la storia di quando, dove, perché e come tutto questo è arrivato. Ci sono alcuni commenti sotto l' autore delle modifiche in cui giustifica il nuovo comportamento:

Alcuni punti sul cambiamento.

  • È stato introdotto in coreutils v8.25 e l'allineamento è migliorato in v8.26
  • Succede solo quando si invia ai terminali, quindi non si rompono gli script
  • Disambigua l'output per gli utenti per i file contenenti spazi bianchi
  • Disinfetta l'output, quindi è sicuro da copiare e incollare
  • L'output ora è sempre valido per copiare e incollare nuovamente nella shell
  • Gli utenti possono tornare al vecchio formato aggiungendo -Nal loro lsalias

12

È lsche sta citando l'output, esegui:

ls -N

per ottenere l'output senza alcun preventivo.

man ls

-N, - letterale

stampa i nomi delle voci senza virgolette


Alias ​​se vuoi:

echo "alias ls='ls -N'" >> .bashrc
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.