¿Existe un comando CLI para imprimir en orden alfabético (pero en un solo texto u hoja de cálculo) la lista de carpetas contenidas en diferentes discos duros?
Por ejemplo, digamos que tengo esta configuración:
/sda/Alfa/File 1
/sdb/Bravo/File 5
/sdb/Bravo/File 20
/sdc/Delta/File 14
/sdc/Delta/File 11
Lo que me gustaría generar es un archivo TXT o de hoja de cálculo donde las carpetas se enumeran en orden alfabético, algo como:
File 1
File 5
File 11
File 14
File 20
¿Es esto algo que puedo hacer desde la CLI?
Respuesta1
find /sda /sdb /sdc -type f -printf '%f\n' | sort
Por ejemplo:
$ tree sd[a-c]
sda
└── Alfa
└── File 1
sdb
└── Bravo
├── File 20
└── File 5
sdc
└── Delta
├── File 11
└── File 14
$ find sd[a-c] -type f -printf '%f\n' | sort
File 1
File 11
File 14
File 20
File 5
Tenga en cuenta queestees lo que normalmente se entiende por orden alfabético, más precisamente expresado como orden lexicográfico. ( 5
el carácter no va antes 1
del carácter, por lo que 5
la cadena no puede ir antes de 14
la cadena; 05
sin embargo, lo hará).
Explicación:
find
es un programa para encontrar cosas.
-type f
indica que queremos archivos normales y no directorios (u otros archivos especiales).- La salida habitual de
find
es la ruta del archivo, por lo que obtendríamossda/Alfa/File 1
, pero al usar-printf '%f\n'
, le indicamosfind
que imprima solo el nombre del archivo.