Comment tarer un répertoire sans inclure le répertoire lui-même

Salut les gens! Aujourd'hui, dévoilons un joli tar astuce qui est souvent demandée : comment tarer des fichiers et des dossiers dans un répertoire sans inclure le répertoire parent dans l'archive tar ? Ceci est particulièrement utile lorsque vous souhaitez uniquement le contenu, pas la structure des dossiers.

Le casse-tête classique du goudron

Imaginez que vous avez un répertoire Data rempli de fichiers et autres dossiers. Vous souhaitez créer un Data.tar archives de tout ce qu'il y a à l'intérieur Data mais sans Data répertoire lui-même faisant partie de l’archive. Cela semble délicat, non ? Pas vraiment!

Plongez dans la ligne de commande

Voici comment faire:

  1. Accédez au répertoire parent: Tout d'abord, vous devez être dans le répertoire qui contient Data.
   cd /path/to/parent
  1. Utiliser Tar avec des caractères génériques: L'astuce consiste à utiliser des caractères génériques. Au lieu de dire tar archiver Data, tu lui dis de tout archiver à l'intérieur Data.
   tar -cvf Data.tar -C Data .

Ici, -C Data change le répertoire en Data premier et . signifie tout ce qu'il contient.

Pourquoi est-ce important

Cette méthode est pratique pour diverses raisons :

  • Archivage sélectif: Vous obtenez le contenu sans la couche de dossier supplémentaire, parfait pour des scénarios de sauvegarde ou de déploiement spécifiques.
  • Flexibilité: Il permet plus de contrôle sur la structure de vos données archivées.
  • Propre et bien rangé: Idéal lorsque vous souhaitez décompresser des fichiers sans créer de répertoire supplémentaire.

Explorons maintenant certains des autres scénarios.

Scénario 1 : Types de fichiers spécifiques à Tar

Supposons que vous souhaitiez tarer uniquement certains types de fichiers dans le répertoire. Vous pouvez combiner la commande find avec tar :

cd /path/to/parent
tar -cvf Data.tar -C Data $(find . -name "*.txt" -type f)

Cette commande archive uniquement .txt fichiers du Data répertoire.

Scénario 2 : Exclusion de certains fichiers

Si vous souhaitez exclure des fichiers ou des modèles spécifiques :

cd /path/to/parent
tar --exclude='*.log' -cvf Data.tar -C Data .

Cela exclut tout .log fichiers de l'archive.

Scénario 3 : Tarer et compresser à la volée

Pour compresser l'archive tar immédiatement :

cd /path/to/parent
tar -czvf Data.tar.gz -C Data .

Cela crée une archive tar compressée du contenu de Data.

Scénario 4 : Sauvegarde incrémentielle

Si vous effectuez des sauvegardes incrémentielles du contenu :

cd /path/to/parent
tar --listed-incremental=/path/to/snapshot.file -cvf Data.tar -C Data .

Cela crée une archive tar lors de l'enregistrement des modifications depuis la dernière sauvegarde.

Récapitulation

Ces scénarios illustrent la polyvalence de tar. Que vous gériez des sauvegardes, déployiez des logiciels ou simplement organisiez des fichiers, tar vous propose une solution adaptée à vos besoins. N'oubliez jamais de naviguer vers le bon répertoire et d'utiliser des caractères génériques ou des commandes spécifiques pour contrôler ce qui est inclus dans votre archive tar.

Explorez, expérimentez et maîtrisez ces astuces pour rendre votre parcours Linux plus efficace et plus agréable !