En la línea de comandos de Linux, me gustaría copiar un conjunto (muy grande) de .txtarchivos de un directorio (y sus subdirectorios) a otro.
Necesito que la estructura del directorio permanezca intacta, y tengo que ignorar los archivos, excepto los que terminan en .txt.

Respuestas:
Puedes usar find y cpio para hacer esto
fuente
fuente
.despuésfind. También en macOS 10.13.1, esto funcionó:find . -type f -name "*.txt" -exec install -v {} /dest/path/{} \;Otro enfoque
find . -name '*.txt' -exec rsync -R {} path/to/dext \;fuente
find . -iname '*.txt' -exec rsync -Rptgon {} path/to/dext \;hacer una coincidencia entre mayúsculas y minúsculas y preservar la propiedad y los permisos.La forma más fácil que funcionó para mí:
Una trampa es que tiene que navegar al directorio "deseado" antes para que la "ruta principal" sea correcta.
También asegúrate de haber habilitado los globos recursivos en bash:
fuente
¿qué tal si primero lo copia con
luego ve a la nueva carpeta y ejecuta
o solo
Editar: ok, quieres un comando que filtre (¡no lo he probado porque mi sistema no tiene el
cpiocomando!). Aquí es donde lo encontré: http://www.gnu.org/software/findutils/manual/html_mono/find.html#Copying-A-Subset-of-FilesPor favor, probar primero esto, porque no he probado todavía. Si alguien verificara, eso sería genial.
fuente
0en-pmd0y añadir-print0al final delfindcomando (justo antes de la|).Intenté hacer lo mismo en macOS, pero ninguna de las opciones realmente funcionó para mí. Hasta que lo descubrí
ditto.Tuve que copiar muchos archivos .wav y hacer que omita los archivos de video ... Así que esto es lo que se me ocurrió:
find . -type f -iname "*.wav" -ls -exec ditto {} /destination/folder/{} \;find .- Ejecuta buscar en la carpeta actual. asegúrese de hacerlocd /source/folderantes de comenzar-type f- Especifica solo buscar archivos-iname "*.wav"- Esto le dice que busque mayúsculas y minúsculas * .wav-ls- Esto le muestra el archivo en el que está trabajando. De lo contrario, no muestra nada.-exec ditto {} /destination/folder/{} \;- Hace todo el trabajo de copiar y crear los archivos con el mismo árbol de directorios.fuente
Navegue al directorio:
Es un poco más directo y poderoso, si manejas expresiones regulares.
fuente
Navegue al directorio:
Tendrá que navegar a cada carpeta en el directorio, pero esto es mejor que la mayoría de las opciones que he visto hasta ahora.
fuente