Copier des fichiers et des répertoires de manière récursive avec tar

La copie d'une arborescence de répertoires et de son contenu sur un autre système de fichiers à l'aide de tar préservera la propriété, les autorisations et les horodatages. Une astuce permet d'utiliser tar pour effectuer une copie récursive sans créer de fichier tar intermédiaire.


Pour copier tous les fichiers et sous-répertoires du répertoire de travail actuel dans le répertoire / cible, utilisez:

tar cf - * | (cd / target; tar xfp -)

La première partie de la commande avant le tuyau demande à tar de créer une archive de tout le contenu du répertoire en cours et de l'écrire sur la sortie standard (la fin d'un nom de fichier indique fréquemment stdout). Les commandes entre parenthèses obligent le shell à changer de répertoire pour le répertoire cible et à annuler les données de l’entrée standard. Comme les commandes cd et tar sont contenues entre parenthèses, leurs actions sont effectuées ensemble.

L'option -p de la commande d'extraction de tar permet à tar de conserver les informations relatives aux autorisations et à la propriété, si possible en fonction de l'utilisateur qui exécute la commande. Si vous exécutez la commande en tant que superutilisateur, cette option est activée par défaut et peut être omise.