GNU/Linux >> Tutoriels Linux >  >> Linux

tar -C avec un modèle de fichier générique

Le problème est que le *.xml est interprété par le shell, pas par tar. Par conséquent, les fichiers xml qu'il trouve (le cas échéant) se trouvent dans le répertoire dans lequel vous avez exécuté la commande tar.

Vous devrez utiliser une opération en plusieurs étapes (impliquant peut-être des tuyaux) pour sélectionner les fichiers souhaités, puis les tarer.

Le moyen le plus simple serait simplement de cd dans le répertoire où se trouvent les fichiers :

$ (cd /path/to/file && tar -cf /path/to/example.tar *.xml)

devrait fonctionner.

Les parenthèses regroupent les commandes, de sorte qu'une fois terminées, vous serez toujours dans votre répertoire d'origine. Le &&signifie le tar ne s'exécutera que si le cd initial a réussi.


Lors d'une de vos tentatives :

tar -cf example.tar -C /path/to/file "*.xml"

le caractère * est bien passé à tar. Le problème, cependant, est que tar ne prend en charge que la correspondance générique sur les noms des membres d'une archive. Ainsi, bien que vous puissiez utiliser des caractères génériques lors de l'extraction ou de la liste des membres d'une archive, vous ne pouvez pas utiliser de caractères génériques lorsque vous créez une archive.

Dans de telles situations, j'ai souvent recours à la recherche (comme vous l'avez déjà mentionné). Si vous avez GNU find, il a la bonne option pour imprimer uniquement le chemin relatif, en utilisant l'option -printf :

find '/path/to/file' -maxdepth 1 -name '*.xml' -printf '%P\0' \
| tar --null -C '/path/to/file' --files-from=- -cf 'example.tar'

La réponse acceptée suppose que les fichiers proviennent d'un seul répertoire. Si vous utilisez plusieurs -C options, alors vous avez besoin d'une approche plus générale. La commande suivante demande au shell de développer les noms de fichiers, qui sont ensuite transmis à tar .

tar -cf example.tar -C /path/to/file $(cd /path/to/file ; echo *.xml)

Linux
  1. Démarrer avec ls

  2. Ouvrir un fichier .tar.gz avec une seule commande

  3. Avertissement avec nftw

  4. tar :lecture courte

  5. Est-ce que mv avec joker est toujours atomique

Comment extraire (décompresser) le fichier tar.xz

Comment créer un fichier Tar Gz

Commande Linux WC avec exemples

Signatures numériques avec GnuPG

14 commandes Tar de base sous Linux avec des exemples pour les débutants

Extraire le fichier tar.gz sous Linux