¿Puedo `ls` todos los archivos en un directorio desde "1", "2",..., "9", "10", "11", ..., "20", "21", ... ?

¿Puedo `ls` todos los archivos en un directorio desde "1", "2",..., "9", "10", "11", ..., "20", "21", ... ?

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 -vdónde -v, desde la manpágina

 -v     natural sort of (version) numbers within text

Respuesta2

GNU ls -vya 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 lsno eres GNU ls, aún puedes hacer:

ls -fdl -- *(n)

Para ordenar la lista numéricamente.

información relacionada