Dans le terminal Linux: Je suis dans un dossier, /home/user/origlocation/
je dois aller dans un dossier ../source/
et trouver tous les fichiers avec le nom test*.txt
. Ensuite, j’ai besoin de compresser (tar.gz) ces fichiers à un emplacement /home/user/target/
particulier, sans la structure de répertoires du fichier tar (j’ai seulement besoin des noms de fichiers des résultats tar extraits immédiatement). S'il vous plaît aider.
linux
command-line
tar
makkhi
la source
la source
En supposant que vous ayez un nouveau-né
tar
, vous pouvez faire ceci:Cela fonctionne en utilisant
find
pour générer une liste de fichiers dans le répertoire cible et ci-dessous.tar
lit ensuite cette liste dans le tube commestdin
suit (en utilisant "-T-"), puis crée l'archive souhaitée (y compris la compression avecgzip
), en transformant les chemins de fichiers de sortie à l'aide de l'sed
expression, qui supprime tous les principaux composants du répertoire.Si en fait tous vos fichiers sont dans un seul répertoire, c'est encore plus simple:
Cela fonctionne en utilisant un sous-shell pour vous déplacer dans le répertoire cible, mais écrit toujours l'archive tar dans l'emplacement final requis. Aucun composant de répertoire n'est inclus car vous utilisez un environnement de shell simple pour sélectionner les fichiers du répertoire de travail).
la source