web-dev-qa-db-fra.com

Confusion entre archivage et compression?

Je suis confus au sujet de l'archivage et de la compression et je vais écrire ce que je pense être correct.

Voici les commandes que je souhaite mieux comprendre:

tar –c file > file.tar
tar –cf file.tar file // this command and the previous one are about the same

Je pense que les commandes précédentes ne font que créer une sorte de dossier commun (archive) dans lequel nous avons les fichiers exacts que nous avions avant d'exécuter la commande d'archivage (la taille n'est pas réduite du tout). La seule différence est que le troisième produira une archive avec .gz au lieu de .tar.

Pour réduire la taille de l'archive (la compresser), nous devons utiliser:

tar -cjf file.tar.bz2 file
tar –cJf file.tar.xz file

gzip file.tar // it’ll create a compressed file called file.tar.gz
tar -cz file  > file.tar.gz 

Selon moi, si l'extension est .gz, .bz2 ou .xz, elle est compressée et si .tar est archivée, est-ce exact?

4

Je pense que celui-ci répond à votre question: https://unix.stackexchange.com/questions/127169/does-tar-actually-compress-files-or-just-group-them-together

Pour confirmer ce que vous pensez: tar met effectivement le fichier dans une archive sans aucune compression. Ce sont les indicateurs de compression que vous pouvez utiliser pour que tar utilise un type de compression lors de la création de l'archive.

De plus, les extensions de fichier sont saisies manuellement, vous pouvez donc vous faire avoir comme ceci: tar -cz file > file.tar.bz2 (alors que vous auriez dû utiliser .tar.gz à la place)

Si vous souhaitez extraire ce fichier ultérieurement, vous vous tromperez en pensant que vous avez utilisé la compression gzip. Sachez donc ce que vous faites ou documentez quelque part ce que vous avez fait.

5
Dino Hensen

"tar" signifie littéralement l'archive sur bande et stocke et extrait les fichiers d'une archive sur bande (ou disque). tar prend en charge un grand nombre de programmes de compression tels que gzip, bzip2, lzip, lzma, lzop, xz et la compression traditionnelle.

les commandes tar doivent commencer par une fonction telle que

[-] A --catenate --concatenate | c --create | d --diff --compare |
         --delete | r --append | t --list | --test-label | u --update | x
         --extract --get [options] [pathname ...]

l'option -a peut être utilisée pour détecter automatiquement la compression souhaitée à partir du suffixe (extension) du fichier en cours de création. tar doit détecter automatiquement le type de compression et agir en conséquence lors de l'extraction sans avoir besoin d'informations spécifiques. Le suffixe pour la détermination du type ne retombera que si la vérification de la signature échoue. Pour plus d'informations sur tar, entrez la commande man tar et pour en savoir plus sur la compression tar, voir: https://www.gnu.org/software/tar/manual/html_section /tar_69.html

Plusieurs options peuvent modifier les résultats. tar permet l'ajout et la suppression. L'extension n'indique aucunement le type de fichier. Par exemple, j'ai vu des fichiers image d'un système Windows avec une extension .jpg qui étaient en fait .gif. Pour connaître le type de fichier, ouvrez un terminal avec CtrlAltT Accédez au répertoire contenant le fichier en question et exécutez la commande file filename Voici un exemple de sortie d'un fichier compressé gzip:

$ file wireless-info.tar.gz 
wireless-info.tar.gz: gzip compressed data, from Unix, last modified: Thu Apr 23 07:45:20 2015

La modification de l'extension ne modifie en rien le résultat de file, ce qui en fait un moyen fiable de déterminer le type de fichier même sur des fichiers que vous ne possédez pas et sur lesquels vous n'avez pas de notes. Voici un exemple après avoir renommé le fichier précédent et supprimé le fichier .gz ...

$ file wireless-info.tar
wireless-info.tar: gzip compressed data, from Unix, last modified: Thu Apr 23 07:45:20 2015

Pour plus d'informations sur file et son fonctionnement, exécutez la commande man file

Sources: Expérience & https://www.gnu.org/software/tar/manual/html_section/tar_69.html

2
Elder Geek