Tengo un árbol de directorios, donde cada subdirectorio contiene varios tipos de archivos diferentes, quiero copiar un tipo de archivo en particular de cada uno de los subdirectorios, pero necesito aplanar los resultados, para que todos terminen en un solo directorio - sólo copiando los archivos recién agregados y preservando los permisos He estado usando cp bajo zsh, con la siguiente línea de comandos
cp -np **/*.ftype ../destination
Lo que ha funcionado brillantemente hasta ahora. Sin embargo, he llegado a un límite, no estoy seguro de si es el número de directorios en el directorio de origen (actualmente 217) o el número total de directorios / archivos deseados, (en algún lugar entre 2672 y 2690), pero de repente estoy recibiendo el error argument list too long: cp
Esperaba utilizar algo como cp -np [A-Ma-m]**/*.ftype ../destination
y dividir el trabajo en partes, pero consigo no matches found: [A-Ma-m]**/*.ftype
aunque sé que tengo directorios que comienzan con estos rangos.
También he probado
find Base_dir/ -iname '*.ftype' | xargs -J% cp -np % ../destination
pero parece que rompe los directorios en cada punto en el que hay un carácter de espacio en el nombre, por lo que no copia nada.
Seguro que estoy haciendo alguna tontería mal, pero cualquier ayuda se agradecería.