Compresser un dossier avec tar?

Jessaye de compresser un dossier (/var/www/) en ~/www_backups/$time.tar$time est la date actuelle.

Voici ce que jai:

cd /var/www && sudo tar -czf ~/www_backups $time" 

Je suis complètement perdu et jy suis depuis des heures maintenant. Je ne sais pas si -czf est correct. Je souhaite simplement copier tout le contenu de /var/www dans un fichier $time.tar, et je souhaite conserver les autorisations de fichier pour tous les des dossiers. Quelquun peut-il maider?

Commentaires

  • vous avez besoin dun  » de lautre côté de $time également.

Réponse

À tar et gzip un dossier, la syntaxe est:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar 

Le - avec czf est facultatif.

Si vous voulez tar le répertoire courant, utilisez . pour le désigner.

Pour créer des noms de fichiers dynamiquement, utilisez lutilitaire date (regardez sa page de manuel pour les options de format disponibles). Par exemple:

cd /var/www && tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz . 

Cela créera un fichier nommé quelque chose comme 20120902-185558.tar.gz.

Sous Linux, il est probable que votre tar prend également en charge la compression BZip2 avec j plutôt que z option. Et peut-être dautres. Consultez la page de manuel de votre système local.

Commentaires

  • Cest parfait, merci. Jai cependant un petit problème. Après avoir créé un fichier tar de / var / www, il est placé dans les répertoires / var / www du fichier tar. Ici ‘ est le code i ‘ m using now sudo tar -czf ~/www_backups/$time.tar /var/www/" Imaginez que jai un fichier appelé test.txt dans / var / www. Après avoir fait une copie tar du fichier, quand je lextraire, il sera placé dans les répertoires / var / www. Cela a-t-il du sens? Jespère que cest le cas, un peu difficile à expliquer. Je vais vérifier le support de BZip2, merci pour la suggestion!
  • Que ‘ s pourquoi vous cd répertoire que vous souhaitez empaqueter, puis tar cf file.tar . – ce dernier . au lieu de spécifier le chemin complet rendra les chemins à lintérieur de larchive relatifs au répertoire actuel. Vous pouvez également utiliser loption -C pour tar (regardez la page de manuel).
  • Oui, cela fonctionnait beaucoup mieux. Merci beaucoup, appréciez!
  • @Qwertylicious -f (à partir de la page de manuel) Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
  • Avec les versions récentes de tar, la majuscule J (au lieu de z) utilisera le xz Compression LZMA2.

Réponse

Exemples pour les algorithmes de compression les plus courants

Le titre de la question est simplement  » Compresser un dossier avec tar?  » Puisque ce titre est très général, mais la question et la réponse sont beaucoup plus spécifiques, et en raison du très grand nombre de vues que cette question a attiré, je lai senti serait bénéfique dajouter une liste à jour dexemples darchivage / compression et dextraction / décompression, avec divers algorithmes de compression couramment utilisés.

Ceux-ci ont été testés avec Ubuntu 18.04.4. Ils sont très simples pour une utilisation générale, mais pourraient facilement être intégrés dans le contenu des questions plus spécifiques du PO en utilisant les techniques de la réponse acceptée et des commentaires utiles ci-dessus.

Une chose à noter pour les questions plus générales audience est que tar najoutera pas les extensions nécessaires (comme .tar.gz) automatiquement – lutilisateur doit les ajouter explicitement, comme indiqué dans le commandes ci-dessous:

# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball tar cvf filename.tar * # 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory tar xvf filename.tar # 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip tar cvzf filename.tar.gz * # 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory tar xvf filename.tar.gz # Note: same options as 2 above # 5: tar (create bzip2"ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2 tar cvjf filename.tar.bz2 * # Note: little "j" in options # 6: Untar (extract bzip2"ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above # 7: tar (create xz"ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz tar cvJf filename.tar.xz * # Note: capital "J" in options # 8: Untar (extract xz"ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above 

Voir la page de manuel tar (il est préférable dutiliser man tar sur votre machine spécifique) pour plus de détails. Ci-dessous, je résume les options utilisées ci-dessus directement à partir de la page de manuel:

-c, –create
créer une nouvelle archive

-x, –extract, –get
extraire des fichiers dune archive

-v, –verbose
liste verbeusement les fichiers traités

-z, –gzip
filtre larchive via gzip

-j, –bzip2
filtrer larchive via bzip2

-J, –xz
filtre larchive via xz

-f, –file = ARCHIVE
utilise un fichier darchive ou un appareil ARCHIVE

Inutile dajouter le - devant les options combinées ou le signe = entre loption f et le nom de fichier.

Jai tiré tout cela de mon récent article , qui sera développé dans un article beaucoup plus complet car jai le temps de travailler sur il.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *