web-dev-qa-db-fra.com

Utilisez rsync pour copier tous les fichiers à l'exception de certains noms de fichiers avec une certaine extension.

J'ai deux cartes flash de même taille et je souhaite copier le contenu de l'une sur l'autre en respectant les règles suivantes:

  1. Je veux tous les répertoires et sous-répertoires en place
  2. Je veux exclure les fichiers de type .FOO, .BAR et .ZIM (tous les autres fichiers sont copiés)
  3. Bonus: Ce serait cool si les noms de fichiers sont copiés car ils sont copiés, car ils copient environ 8 Go d'informations.

Cela pourrait-il être fait avec "trouver" d'une manière ou d'une autre?

27
macek

Ce serait beaucoup plus facile avec rsync avec son commutateur --exclude.

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

Le commutateur -v fournira une sortie détaillée sur les fichiers en cours de synchronisation.

40
John T

Si vous avez un grand nombre d'extensions à exclure, vous pouvez créer un fichier et noter toute l'extension ou le fichier à exclure et utiliser une seule option d'exclusion pour la simplifier.

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

Il est toujours bon d'utiliser z pour la compression et l'option r si vous devez copier de manière récursive.

0
amit singh