2016-11-24 1 views
-2

Condition: Les fichiers d'archive à l'aide de script shell UNIX au format .gz sans structure de répertoireArchive tous les fichiers du répertoire source dans un fichier xyz.gz et déplacer que le répertoire cible en utilisant un script shell UNIX

J'utilise ci-dessous commande

tar -C source_dir -zcvf target_dir/xyz.gz source_dir 

exemple:

tar -C /home/log -zcvf /home/archive/xyz.gz /home/log 

ici xyz.gz contient /home/log

Il crée le fichier xyz.gz en conservant la structure du répertoire. Je veux que seuls les fichiers soient archivés sans structure de répertoire.

Répondre

1

Vous pouvez essayer la commande suivante:

$ cd /home/log 

$ tar zcvf /home/archive/xyz.gz * 
+0

Notez qu'un préfixe à quatre espaces sur une ligne restitue les E/S de la console dans un bloc de code, voir ma modification. – halfer

+0

Merci Cela fonctionne pour les moyens actuels du répertoire à partir de "/ home/log". Que faire si je veux exécuter cette commande à partir d'un autre chemin comme "/ home/usr/script" –

+0

un changement de condition. Au lieu de créer un seul fichier d'archive pour tous les fichiers journaux, je souhaite créer des fichiers .gz individuels pour tous les journaux. Comment puis-je atteindre cet objectif? –

0

Vous pouvez utiliser des noms de fichiers archivés options --transform à bande leader des composants de chemin en utilisant un sed Espression:

tar -C /home/log -zcvf /home/archive/xyz.gz --transform 's_.*/__' /home/log 

Ce ne sera cependant aussi écrire une entrée pour chaque répertoire rencontré. Si vous ne voulez pas, vous pouvez utiliser find pour trouver uniquement les fichiers réguliers et les passer au goudron sur stdin comme ceci:

cd /home/log 
find -type f -print0 | tar -zcvf /home/archive/xyz.gz --transform 's_.*/__' --verbatim-files-from --null -T - 

Notez que cela peut créer des entrées multiples avec le même nom dans l'archive tar, si des fichiers portant le même nom existent dans différents sous-répertoires. Vous devriez également utiliser l'extension classique .tar.gz ou .tgz pour l'archive tar compressée.