Come elenco prima le cartelle con i trattini bassi?


23

Quindi praticamente come tutti, prima di usare Ubuntu ho usato una macchina Windows, e una delle cose a cui mi sono abituato in Windows era usare il carattere di sottolineatura come primo carattere di un nome di cartella come una sorta di marcatura speciale in modo che fosse appare per primo nell'elenco, sia nella riga di comando che in Esplora file.

Ad esempio, nella mia cartella eBooks (in Windows) è simile al seguente:

_read
      Book1.pdf
      Book2.pdf
_reading
      Book3.pdf
Book4.pdf
Book5.pdf

ma nel Nautilus di Ubuntu sembra così:

Book4.pdf
Book5.pdf    
_read
      Book1.pdf
      Book2.pdf
_reading
      Book3.pdf

Quello che sta succedendo è che sta ignorando completamente il carattere di sottolineatura e tratta "_read" come "letto" e quindi non lo elenca per primo come desiderato.

Ho provato a impostare la variabile d'ambiente LC_COLLATE su C. Questo aiuta in qualche modo poiché elenca il carattere di sottolineatura insieme, ma alla fine e non all'inizio.

Grazie.


puoi includere uno screenshot?
Films

Possibile duplicato di askubuntu.com/questions/115741/… anche se penso che la risposta di @ maggotbrain sia migliore di quella presentata lì.
Rududonstaden

Risposte:


16

Poiché non è stata specificata la locale attualmente in uso, questa soluzione presuppone che si stia utilizzando en_US.UTF-8come impostazione predefinita.

Puoi verificarlo eseguendo il comando localedalla riga di comando ( Ctrl+ Alt+ t).

Per esempio:

~ $ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

La variabile che influisce sull'ordinamento dei file si chiama LC_COLLATE .

Secondo le pagine della guida di Ubuntu , la variabile LC_COLLATE determina "Come le stringhe (nomi dei file ...) sono ordinate alfabeticamente. L'uso delle impostazioni locali " C "o" POSIX "qui porta ad un ordinamento simile a strcmp (), che può essere preferibile alle lingue specifiche della lingua ".

L'ordinamento dovrà essere modificato da LC_COLLATE="en_US.UTF-8"a LC_COLLATE=C.

Dalla riga di comando ( Ctrl+ Alt+ t), immettere:

update-locale LC_COLLATE=C

Importante: è necessario disconnettersi dal sistema e quindi accedere nuovamente per rendere effettive le modifiche .

Eseguire localenuovamente il comando, dovrebbe mostrare che la LC_COLLATEvariabile è stata modificata con successo. L'esecuzione del comando ls -lnuovamente dovrebbe riflettere questa modifica.


1
Ho già impostato LC_COLLATE su C, come ho descritto nell'ultimo paragrafo della mia domanda. Tuttavia, sto ottenendo risultati diversi sia nel terminale che nel nautilus explorer e nel frattempo ho riavviato il computer. Qualche idea sul perché stia succedendo?
nunos,

@nunos Hai degli alias impostati lsnel tuo .bashrc?
Kevin Bowen,

@nunos Interessante. Su quale tipo di file system lo stai verificando? L'unico posto in cui ho problemi con l' ls -lordinamento è su un'unità formattata NTFS che non sembra onorare la variabile LC_COLLATE. Tutti i miei filesystem ext3 sembrano rispettare quell'impostazione usando il comando ls così come in Thunar e Nautilus.
Kevin Bowen,

questo potrebbe benissimo essere il problema allora. Sto usando ills -l comando su un'unità NTFS, poiché ho un doppio avvio con Windows.
nunos,

2
update-locale LC_COLLATE=Cnon aiuta a ottenere cartelle con caratteri di sottolineatura all'inizio di un elenco ordinato se si utilizzano lettere maiuscole all'inizio dei nomi delle cartelle!
malisokan

1

caja (e penso che Nautilus prima di esso) abbia un'opzione in Preferenze per ordinare le cartelle prima dei file. Sarebbe d'aiuto?

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.