En el shell bash de UNIX (específicamente Mac OS X Leopard) ¿cuál sería la forma más sencilla de copiar cada archivo con una extensión específica desde una jerarquía de carpetas (incluyendo subdirectorios) a la misma carpeta de destino (sin subcarpetas)?estructura de carpeta de aplanamiento de copia de archivos de shell Unix
Obviamente, existe el problema de tener duplicados en la jerarquía de origen. No me importaría si se sobrescriben.
Ejemplo: Tengo que copiar todos los archivos .txt en la siguiente jerarquía
/foo/a.txt
/foo/x.jpg
/foo/bar/a.txt
/foo/bar/c.jpg
/foo/bar/b.txt
a una carpeta llamada 'dest' y obtener:
/dest/a.txt
/dest/b.txt
-exec cp -t dest/{} + será más rápido, ya que solo tiene que ejecutar cp una vez, con múltiples argumentos. -t es la abreviatura de --target-directory. -l puede ser útil aquí, para hacer enlaces duros. en lugar. Y tal vez -u, para terminar con la versión más nueva para cada nombre de archivo, en lugar del primer hallazgo. –
La pregunta general de bash ... ¿es {} específica para encontrar o es una forma de representar un valor de canalización? –
@BrianBolton '{}' es específico de 'find' –