Use rsync para copiar todos los archivos, excepto ciertos nombres de archivo con cierta extensión


28

Tengo dos tarjetas flash del mismo tamaño y quiero copiar el contenido de una a la otra según las siguientes reglas:

  1. Quiero todos los directorios y subdirectorios en su lugar
  2. Quiero excluir archivos de tipo .FOO, .BAR y .ZIM (todos los demás archivos se copian)
  3. Bonificación: sería genial si genera los nombres de los archivos a medida que se copian, ya que copiará ~ 8 GB de información

¿Podría hacerse esto con "encontrar" de alguna manera?

Respuestas:


41

Esto sería significativamente más fácil usando rsync con su --excludeinterruptor.

rsync -av --exclude='*.FOO' --exclude='*.BAR' --exclude='*.ZIM' /source /dest

El -vconmutador proporcionará una salida detallada sobre qué archivos se están sincronizando.


Poco seguimiento aquí: la copia finalizó y / src / * ahora está en / dest / src / * ¿Cómo usar rsync para obtener / src / * en / dest / *?
macek

Prueba/source/ /dest
John T

Esto no funciona Todavía estoy viendo archivos * .FOO copiados.
Jake

Se especifica cómo debe dar la ruta --exclude. Si tienes problemas con esto, mira esta respuesta .
totymedli

0

Si tiene una gran cantidad de extensiones para excluir, puede hacer un archivo y escribir toda la extensión o archivo para excluir y usar solo una opción de exclusión para hacerlo simple.

rsync -ravz --exclude = '. / abc, txt' / source / dest

Siempre es bueno usar z para la compresión y la opción r si tiene que copiar de forma recursiva.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.