
Anteriormente hice una pregunta muy similar pero era solo para un subdirectorio.escribir archivos en un subdirectorio en un archivo csv y guardarlo en el directorio principal en la línea de comando de Linux. Tengo un directorio llamado 'dir' y hay 5 subdirectorios en él, sub1, sub2, ... sub5. Cada subdirectorio tiene muchos archivos. Me gustaría escribir una lista de archivos de todos los subdirectorios en un archivo CSV y guardarlo en el directorio 'dir' con una línea de comando en Linux. Mi código hace eso excepto que solo quiero los nombres de archivo (nombre1, nombre2, etc.) pero escribe los nombres de archivo completos con la ruta (./sub1/nombre1,./sub1/nombre2, etc.). La línea de comando que estoy usando dentro de la carpeta dir es;
dir$ find . -type f > names.csv
Respuesta1
Como has etiquetado tu pregunta como 'Linux', supongo que tienes GNU find
, en cuyo caso puedes usar
find . -type f -printf '%f\n' > names.csv
De man find
:
%f File's name with any leading directories removed (only the last element).
Respuesta2
dir$ find . -type f -execdir basename {} \; > names.csv
Explicación
-execdir
realiza el siguiente comando para cada resultado.basename {} \;
Retire la pieza antes de la final/
. Los{}
sustitutos para cada directorio encontrado. Consulteman find
para obtener más información.