2 votos

Copiar una carpeta (y su estructura interna), pero sólo incluir archivos específicos

Tengo una carpeta (con subcarpetas y más subcarpetas) que la carpeta final tiene muchos tipos de archivos diferentes. Estos tipos de archivos incluyen imágenes (.png/.jpeg), vídeos (.mov) y archivos de texto (.txt). Pero me gustaría copiar la carpeta completa (con la estructura interna) y sólo incluir los .mp3. Alguien tiene alguna idea de como hacer esto. (por favor, no digáis que manualmente porque hay más de 100 carpetas y la carpeta en sí es de 60GB, así que no me digáis que copie toda la carpeta) Preferiblemente, me gustaría que alguien fuera capaz de darme una solución en la que pueda mover directamente los .mp3's(conservando la estructura de la carpeta)

1voto

user3439894 Puntos 5883

Los siguientes dos comandos, utilizados en un Terminal, pueden lograr lo que has pedido, el primero creando un estructura jerárquica de directorios de destino que contiene el *.mp3 y el segundo comando que borra el *.mp3 archivos del estructura jerárquica de directorios de origen .

Nota: Asegúrese de tener copias de seguridad adecuadas antes de utilizar el segundo comando, ya que un error de escritura puede ser fatal.

Terminal abierto.

Por defecto, el Terminal se abre en el propio Directorio de la casa por lo que lo utilizaré como punto de partida del ejemplo y el Directorio musical como el estructura jerárquica de directorios de origen .

Este primer comando hará una copia del Estructura jerárquica de directorios de música que sólo contiene *.mp3 archivos en el directorio de destino . En otras palabras, después de ejecutar el primer comando habrá un directorio de destino que contiene ese mismo estructura jerárquica de directorios a partir de Música dentro del directorio de destino que contiene sólo *.mp3 y sólo el directorios de la fuente que contienen *.mp3 archivos. Si un determinado directorio de fuentes no contiene un *.mp3 archivo entonces que directorio no se crea en el estructura jerárquica del directorio de destino .

Nota: La línea de comandos completa se extiende fuera de la vista sin desplazamiento horizontal.

find ./Music -name "*.mp3" -type f -print0 | xargs -0 -I '{}' /usr/bin/rsync -avR "{}" "./mp3 files only/"

Nota: El comando completo se muestra en dos líneas para mayor claridad:

find ./Music -name "*.mp3" -type f -print0 | \
xargs -0 -I '{}' /usr/bin/rsync -avR "{}" "./mp3 files only/"

Cuando el comando anterior termine habrá un directorio en mi Directorio de la casa llamado "sólo archivos mp3" y dentro de eso directorio habrá un Estructura jerárquica de directorios de música que sólo contiene *.mp3 archivos. Nota: Si el directorio de destino no existe se creará automáticamente.

Ahora que el *.mp3 se han copiado los archivos del fuente Estructura jerárquica de directorios de música a la Directorio "sólo archivos mp3". el *.mp3 se pueden eliminar los archivos del fuente Estructura jerárquica de directorios de música con el siguiente comando.

find  ./Music/ -name "*.mp3" -delete

Eso es, el *.mp3 junto con su estructura jerárquica de directorios se han copiado en una nueva ubicación y el *.mp3 archivos borrados del fuente .

0voto

Daniel Griscom Puntos 196

Sin tener que recurrir a una línea de comandos algo compleja script, creo que copiar toda la carpeta, y luego buscar y borrar los archivos que no quieres (fácil a través de la búsqueda del Finder), sería la forma más fácil. Hazme saber si quieres detalles (o, si copiar toda la carpeta sería efectivamente un anatema).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X