Si observa lo que find
dice acerca de la clasificación:
-s Cause find to traverse the file hierarchies in
lexicographical order, i.e., alphabetical order within each directory.
Note: 'find -s' and 'find | sort' may give different results.
Esto significa que debemos canalizarlo a sort
para que podamos manipularlo un poco más.
Como ya ha visto, una ordenación alfanumérica simple no funcionará porque está comparando todo como un carácter ANSI, no como números. Lo que tenemos que hacer es comparar los números. Podemos hacer esto con la opción -k
de sort
find . -type d | sort -k2.3
Lo que está haciendo el comando sort -k2.3
está ordenando en el segundo campo (delimitado por el espacio) que termina en la tercera posición. Este es el resultado utilizando la convención de nomenclatura de carpeta 1 :
.
./Folder 1
./Folder 2
./Folder 3
./Folder 4
./Folder 5
./Folder 6
./Folder 7
./Folder 8
./Folder 9
./Folder 10
./Folder 11
./Folder 12
./Folder 13
./Folder 14
./Folder 15
1 Para crear esta estructura de carpetas, usé el comando en mi carpeta de inicio:
mkdir test; cd test; for n in {1..15}; do mkdir "Folder $n"; done