¿Es posible en la línea de comando tener el mismo orden de clasificación para archivos / carpetas que Finder? Si corro find . -type d
, obtengo como salida:
./Folder 1
./Folder 10
./Folder 11
./Folder 2
./Folder 3
...
Lo intenté find -s . -type d
y también agregué algunas sort
opciones. Sin suerte.
Lo que quiero es esto:
./Folder 1
./Folder 2
./Folder 3
...
./Folder 10
./Folder 11
find
lugar dels
?Respuestas:
Si nos fijamos en lo que
find
dice sobre la clasificación:Esto significa que necesitamos canalizarlo para
sort
poder manipularlo un poco más.Como ya ha visto, una ordenación alfanumérica simple no funcionará porque compara todo como un carácter ANSI, no como números. Lo que debemos hacer es comparar los números. Podemos hacer esto con la
-k
opción desort
find . -type d | sort -k2.3
Lo que
sort -k2.3
está haciendo el comando es ordenar en el segundo campo (delimitado por el espacio) que termina en la tercera posición. Este es el resultado usando la convención de nomenclatura de carpetas 1 :1 Para crear esta estructura de carpetas, utilicé el comando en mi carpeta de inicio:
fuente
-k
opción. Sin embargo, eso no cumplió con mis requisitos. Hice este pequeño programa de Python para resolver este problema.También puede hacer
que clasifica los archivos por números de versión en nombres por orden natural.
Desde
man ls
fuente