En DOS está el comando
xcopy /s *.mp3 ..\TEMP2
¿Cómo puedo hacer esto en Ubuntu?
cp -r *.mp3 ../TEMP2
Copiará recursivamente todos los archivos mp3, desafortunadamente sin la ruta debido al *.mp3
filtro.
cp -r *.* ../TEMP2
Copiará la ruta pero no se puede limitar a archivos mp3.
Eché un vistazo a rsync, pero no lo entiendo.
Respuesta1
El poder de las herramientas en Ubuntu es que puedes combinarlas. El siguiente comando busca todos los archivos .mp3 en el directorio actual y sus subdirectorios, y los copia en la ../TEMP2/
carpeta, conservando las rutas:
find -iname '*.mp3' -exec install -D {} ../TEMP2/{} \;
find -iname '*.mp3'
- encuentra todos los archivos que terminan en.mp3
(no distingue entre mayúsculas y minúsculas) y-exec
- ejecuta un comando para cada partido:install -D {} ../TEMP2/{}
- copia el archivo coincidente para../TEMP/
preservar la ruta. ({}
se reemplaza por la ruta que incluye el nombre del archivo)
\;
- finaliza el-exec
comando
Si desea obtener el progreso, agregue -ls
("lista") al comando anterior -exec
. También se puede poner después \;
, pero en ese caso el nombre se muestra después de copiarlo. Ejemplos:
find -iname '*.mp3' -ls -exec install -D {} ../TEMP2/{} \;
find -iname '*.mp3' -exec install -D {} ../TEMP2/{} \; -ls
Respuesta2
Hay varias opciones, pero me temo que ninguna es realmente sencilla…
sincronización
rsync -r --include="*/" --include="*.mp3" --exclude="*" --prune-empty-dirs . ../TEMP2
Esto le indica que excluya todos los archivos ( exclude="*"
), pero que busque en todos los directorios ( include="*/"
) e incluya todos los archivos mp3 ( include="*.mp3"
). Si no desea copiar directorios que no contengan archivos mp3, la --prune-empty-dirs
opción también es necesaria.
cremallera
zip -R archive.zip "*.mp3"
unzip -d ../TEMP2 archive.zip && rm archive.zip
El primer comando crea un archivo con todos los archivos mp3, el segundo descomprime el contenido en el directorio de destino y elimina el archivo si tuvo éxito.
encontrar
find . -iname "*.mp3" -exec install -D {} ../TEMP2/{} ";"
Esto encontrará todos los archivos mp3 y los copiará en la ruta correspondiente en el ../TEMP2
directorio, después de crear primero la estructura del directorio ( install -D
).
copiar todo y borrar el resto
Esto sólo tiene sentido si tiene sólo unos pocos archivos quenoquiero copiar:
cp -r * ../TEMP2
find ../TEMP2 -type f \! -iname '*.mp3' -delete
Esto copia todo y luego elimina todos los archivos que no son archivos mp3.