
Tengo un directorio con archivos llamados "1", "2",..."9", "10", "11", ..., "20", "21", ... dentro.
¿Puedo enumerarlos en el orden de "1", "2",..., "9", "10", "11", ..., "20", "21", ...?
Yo he tratado ls -ls
. No enumera los archivos de esa manera, sino "1", "10", "11", ..., "19", "2", "20", "21", .... Supongo una característica como esa será útil a veces.
Respuesta1
Con GNU ls
(como se encuentra en la mayoría de las distribuciones de Linux), puede usar ls -v
dónde -v
, desde la man
página
-v natural sort of (version) numbers within text
Respuesta2
GNU ls -v
ya se ha mencionado, pero para otros comandos, si su shell es zsh
, puede afectar el orden en que se expanden los comodines con calificadores globales.
Por ejemplo:
printf '%s\n' *(om)
Enumeraría los archivos ordenados por mtiempo de modificación (del más nuevo al más antiguo), *(Om)
para invertir el orden de clasificación (del más antiguo al más nuevo).
*(n)
ordenaría los archivos numéricamente. Entonces, si ls
no eres GNU ls
, aún puedes hacer:
ls -fdl -- *(n)
Para ordenar la lista numéricamente.