En algún momento del camino, arruiné mi comando ls y ahora recibo este pedido cuando lo ejecuto
$ ls -AhHl --color=auto
-rwxr-xr-x 1 clang clang 640 Mar 1 02:46 apple-touch-icon-precomposed.png
-rwxr-xr-x 1 clang clang 784 Jul 12 02:54 crossdomain.xml
-rwxr-xr-x 1 clang clang 1.2K Mar 1 02:46 favicon.ico
drwxr-xr-x 8 clang clang 4.0K Jul 12 23:50 .git
-rw-r--r-- 1 clang clang 17 Feb 29 19:48 .gitignore
-rwxr-xr-x 1 clang clang 1.4K Jul 12 02:54 humans.txt
¿Qué hice que hizo que ls ignorara los archivos de puntos y ordenara por primera letra?
Salida de locale
:
$ locale
LANG=
LANGUAGE=
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=en_US.UTF-8
ls
los nombres de archivo Unicode en idiomas extranjeros (p. Ej., Japonés) sean????????
export LC_ALL="C"
a sus archivos de puntos, perderá efectivamente el soporte para su ubicación real en todas las utilidades compatibles con la ubicación. Si bien el problema de impresión que @ohho señala podría remediarse con la respuesta de Faroul , presentará problemas de clasificación : la clasificación solo se realizará por valor de byte, lo que dará como resultado una clasificación que (a) distingue entre mayúsculas y minúsculas inesperadamente , y (b) invariablemente coloca caracteres acentuados. después de todos los no acentuados.Para evitar cambios en todo el sistema sin una necesidad real, solo se puede cambiar la forma en que
ls
funciona para el usuario actual agregando el alias a.bashrc
:Esto clasifica primero los archivos de puntos, permite manejar (mostrar y ordenar) adecuadamente los conjuntos de caracteres "poco comunes" como cirílico. El único culpable de que la clasificación distinga entre mayúsculas y minúsculas.
Fuente: http://ubuntuforums.org/showthread.php?t=816753
fuente
LC_ALL
ya está configurado en algo incompatible con ordenar / elevar archivos de puntos a la parte superior de lals
lista, usealias ll='LC_ALL=C ls -alF'
en su lugar, porqueLC_COLLATE
no se anulaLC_ALL
.Ajuste
funciona bien para mí: las diéresis y "ls -la" enumeran los archivos de puntos primero.
fuente
UTF-8
, no se ordenarán correctamente.C.UTF-8
es una configuración regional no válida, por lo que la configuración regional vuelve aC
. Todavía pierde el soporte UTF-8. De hecho, es aún peor ya que laLC_ALL=C
mayoría de los programas muestran la mayoría de los caracteres multibyte correctamente , pero conLC_ALL=something_invalid
algunos programas no (como `ls).locale
parece haber un error conLC_ALL=C.UTF-8
: gist.github.com/Carpetsmoker/ef09b3734b29372939f97107413d7733 , eso está en Arch Linux.La página de manual de ls (1) enumera:
Esto parece cambiar la forma en que se ordenan los períodos y agrupa los archivos de puntos primero. Yo tengo:
en mi ~ / .bashrc.
fuente
Una idea descabellada
Realmente me gusta usar diferentes métodos de clasificación
ls
, especialmente-rt
(que estár
ordenado port
ime siempre modificado ). Entonces, decidí probar algo loco y usar awk para hacer mi clasificación.Ahora, en lugar de definir un alias bash, defino una función bash (porque los alias solo pueden agregar argumentos al final, pero las funciones pueden usarlos en cualquier lugar)
Para ver los resultados
Creemos algunos archivos de muestra:
Usando ls simple
Usando mi función que filtra con awk
Puedes ver mi implementación de esto aquí https://github.com/RichardBronosky/dotfiles/commit/6170c0a9
Lo más importante de esto es que es un marco para ajustar su
ls
salida. Puedes hacer lo que quieras con ese filtro awk. Es posible que desee que sean directorios, luego archivos de puntos, luego todo lo demás. Una vez que sepa cómo manejar sus colores xterm, no es demasiado difícil. Depende totalmente de usted.fuente
Podría intentar esto en su archivo .bashrc o / etc / bashrc:
Esto supone que está ejecutando una versión algo más nueva de ls que toma "--group-directorios-primero" como una opción. Obviamente, puede ajustar las opciones de LS a su gusto.
fuente
--group-directories-first
tiene que ver con "mostrar los archivos de puntos primero"?