escribir nombres de archivos de subdirectorios en un archivo csv en Linux

escribir nombres de archivos de subdirectorios en un archivo csv en Linux

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

  • -execdirrealiza el siguiente comando para cada resultado.
  • basename {} \;Retire la pieza antes de la final /. Los {}sustitutos para cada directorio encontrado. Consulte man findpara obtener más información.

información relacionada