Pregunta
Se puede ordenar un rel="noreferrer"> lista por su nombre?
Solución
Mis ls ordena por nombre por defecto. ¿Qué estás viendo?
estados man ls
:
List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.
:
Otros consejos
Para algo simple, puede combinar ls tipo . Por tan sólo una lista de nombres de archivo:
ls -1 | sort
Para ordenar en orden inverso:
ls -1 | sort -r
ls
de coreutils
realiza un locale-conscientes tipo por defecto, y por lo tanto puede producir resultados sorprendentes en algunos casos (por ejemplo, %foo
clasificará entre bar
y quux
en LANG=en_US
). Si desea una especie ASCIIbetical, utilice
LANG=C ls
La belleza de herramientas * nix es puede combinarlos:
ls -l | sort -k9,9
La salida de ls -l
se parecerá a esto
-rw-rw-r-- 1 luckydonald luckydonald 532 Feb 21 2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt
Así que con 9,9
que 9
especie de columna hasta la columna 9
, siendo los nombres de los archivos. Usted tiene que proporcionar dónde parar, que es la misma columna en este caso. Las columnas comienzan con 1
.
Además, si desea ignorar mayúsculas / minúsculas, añadir --ignore-case
al comando tipo.
AVISO: "a" se produce después de "Z":
$ toque A.txt aa.txt Z.txt
$ ls
A.txt Z.txt aa.txt
Los archivos son diferentes solamente por una cadena numérica se pueden ordenar en este número en la condición de que esté precedida por un separador.
En este caso, la siguiente sintaxis se puede utilizar:
ls -x1 file | sort -t'<char>' -n -k2
Ejemplo:
ls -1 TRA*log | sort -t'_' -n -k2
TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log
Desde la página del manual (por golpe ls):
entradas ordenar alfabéticamente si ninguno de -cftuSUX ni --sort.
Compruebe el archivo de .bashrc
para los alias.
La utilidad ls
debe ajustarse a IEEE Std 1003.1-2001 ( POSIX.1
) que establece:
22027:. Deberá ordenar directorio y no directorios operandos separado de acuerdo con el orden de clasificación en la localidad actual
26027: Por defecto, el formato no se especifica, pero la salida se ordenan alfabéticamente por el nombre de símbolo:
- Biblioteca o el nombre del objeto, si se especifica -A
- Nombre de símbolo
- Tipo de símbolo
- valor del símbolo
- El tamaño asociado con el símbolo, en su caso
ls -X trabaja para ese propósito, en caso de que tienen ls alias a un defecto más útil.
In Debian Jessie, this works nice:
ls -lah --group-directories-first
# l=use a long listing format
# a=do not ignore entries starting with .
# h=human readable
# --group-directories-first=(obvious)
# Note: add -r for reverse alpha
# You might consider using lh by appending to ~/.bashrc as the alias:
~$ echo "alias lh='ls -lah --group-directories-first'" >>~/.bashrc
# -- restart your terminal before using lh command --