Estoy intentando encontrar mp3
archivos en cualquier subdirectorio y copiarlos, por ejemplo, en el directorio actual. Aquí está el comando que probé:
find . -name *.mp3 -ls | gawk '{printf("cp %s .\n", $11);}'
El find
comando enumera todos los archivos escapó correctamente, pero gawk
parece tener problemas. El find
comando enumera, por ejemplo, el siguiente archivo
8132326 7392 -rw-r--r-- 1 alexander alexander 7566180 Nov 27 20:22 ./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3
mientras que el gawk
comando ve como $11
la cadena
./For
en lugar de
./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3
¿Porqué es eso? ¿Y cómo manejar esto correctamente (con o sin gawk
)?
Respuesta1
El comando correcto es
find /folder/to/be/searched -type f -name '*.mp3' -exec cp "{}" /target/folder \;
Es más sencillo y, por tanto, hay menos posibilidades de error. Lo único: recuerda usar rutas absolutas, no relativas.