compression linux
compression linux

Comment voir le contenu des fichiers compressés sous linux

Comme nous avons vu dans l’article Compression sous linux, Nous utilisons les deux outils tar et gzip2 pour effectuer l’archivage et la compression pour faire du backup ou pour gagner de l’espace. Avec le temps vous risquez d’oublier le contenu ce qui a été archivé.

Pour voir alors le contenu des fichiers archivés et compressés, vous pouvez désarchiver et décompresser les fichiers ce qui semble assez simple pour les fichiers de petits tailles par contre ce n’est pas le cas pour ceux avec de grandes taille. Heureusement c’est n’est pas la seule moyen pour voir le contenu des fichiers compressés et archivés. Il existe aussi des commandes qui nous facilitent cette tâche.

C’est ce que nous allons découvrir au cours de ce tutoriel.

Voir le contenu d’un dossier archivé/compressé sans extraction :

Pour voir le contenu d’un répertoire archivé ayant comme extension .tar, utiliser la commande ci-dessous :

$ tar -tvf Repertoir_Archive.tar

Vous pouvez utiliser la même commande si le répertoire archivé est compressé :

$ tar -tvf Repertoir_Archive.tar.gz
$ tar -tvf Repertoir_Archive.tgz

Autre moyen pour voir le contenu d’archive est l’éditeur vim :

[root@srv ~]# vim Archive.tar
" tar.vim version v29
" Browsing tarfile /root/Archive.tar
" Select a file with cursor and press ENTER

Document/
Document/file1
Document/file2
Document/file3

Si vous souhaitez voir le contenu d’un fichier alors il suffit de le sélectionner avec le curseur et appuyer sur la touche Entrer

Vous pouvez aussi vous servir de la commande less :

[root@srv ~]# less archive_rep.tar
drwxr-xr-x root/root 0 2020-07-09 23:03 Document/
-rw-r--r-- root/root 0 2020-07-09 23:03 Document/file1
-rw-r--r-- root/root 0 2020-07-09 23:03 Document/file1
-rw-r--r-- root/root 0 2020-07-09 23:03 Document/file1

Voir le contenu d’un fichier compressé sans extraction :

Vous pouvez voir lire le contenu d’un fichier compressé avec des commande que vous connaissez probablement déja en ajoutant la lettre « z » au début.

La commande zcat :

C’est similaire à la commande cat mais pour les fichiers compressés. Dans l’exemple ci-dessous je souhaite jeter un coup d’œil sur un ancien fichier log compressé et au lieu de le décompresser, il suffit que j’utilise la commande zcat :

[root@srv log]# zcat secure-20200526.gz | more
Mar 22 16:48:46 http1 sshd[7923]: Accepted password for root from 192.168.162.139 port 48192 ssh2
Mar 22 16:48:47 http1 sshd[7923]: pam_unix(sshd:session): session opened for user root by (uid=0)
Mar 22 16:48:47 http1 useradd[7959]: new group: name=user-ansible, GID=1000
Mar 22 16:48:47 http1 useradd[7959]: new user: name=user-ansible, UID=1000, GID=1000, home=/home/user-ansible, shell=/bin/bash
Mar 22 16:49:43 http1 sshd[7923]: Received disconnect from 192.168.162.139 port 48192:11: disconnected by user
Mar 22 16:49:43 http1 sshd[7923]: Disconnected from 192.168.162.139 port 48192
Mar 22 16:49:43 http1 sshd[7923]: pam_unix(sshd:session): session closed for user root
Mar 22 17:21:40 http1 sshd[8107]: Accepted password for user-ansible from 192.168.162.139 port 48198 ssh2
Mar 22 17:21:41 http1 sshd[8107]: pam_unix(sshd:session): session opened for user user-ansible by (uid=0)
Mar 22 17:21:41 http1 sudo: user-ansible : user NOT in sudoers ; TTY=pts/1 ; PWD=/home/user-ansible ; USER=root ; COMMAND=/bin/sh -c echo BECOME-SUCCESS-wrlpqxfekgkrumwi
ynlaewemnkbsdako; /usr/bin/python /home/user-ansible/.ansible/tmp/ansible-tmp-1584832186.16-6680655076530/AnsiballZ_user.py

zmore & zless :

Comme vous l’avez remarqué dans l’exemple précédent de zcat, j’ai utilisé la commande more avec pipe ( | ) vu que le fichier de log contient plusieurs ligne, à la place je peux la remplacer avec les deux  commandes zmore & zless :

[root@srv log]# zmore secure-20200526.gz
------> secure-20200526.gz <------
Mar 22 16:48:46 http1 sshd[7923]: Accepted password for root from 192.168.162.139 port 48192 ssh2
Mar 22 16:48:47 http1 sshd[7923]: pam_unix(sshd:session): session opened for user root by (uid=0)
Mar 22 16:48:47 http1 useradd[7959]: new group: name=user-ansible, GID=1000
Mar 22 16:48:47 http1 useradd[7959]: new user: name=user-ansible, UID=1000, GID=1000, home=/home/user-ansible, shell=/bin/bash
Mar 22 16:49:43 http1 sshd[7923]: Received disconnect from 192.168.162.139 port 48192:11: disconnected by user
Mar 22 16:49:43 http1 sshd[7923]: Disconnected from 192.168.162.139 port 48192
Mar 22 16:49:43 http1 sshd[7923]: pam_unix(sshd:session): session closed for user root
Mar 22 17:21:40 http1 sshd[8107]: Accepted password for user-ansible from 192.168.162.139 port 48198 ssh2
Mar 22 17:21:41 http1 sshd[8107]: pam_unix(sshd:session): session opened for user user-ansible by (uid=0)
Mar 22 17:21:41 http1 sudo: user-ansible : user NOT in sudoers ; TTY=pts/1 ; PWD=/home/user-ansible ; USER=root ; COMMAND=/bin/sh -c echo BECOME-SUCCESS-wrlpqxfekgkrumwi
ynlaewemnkbsdako; /usr/bin/python /home/user-ansible/.ansible/tmp/ansible-tmp-1584832186.16-6680655076530/AnsiballZ_user.py
.
.
.
Mar 22 17:26:52 http1 sshd[8396]: Disconnected from 192.168.162.139 port 48212
Mar 22 17:26:52 http1 sshd[8392]: pam_unix(sshd:session): session closed for user user-ansible
--Plus--

La commande zgrep :

la commande zgrep est similaire à celle de grep mais sur les fichiers compressés, vous pouvez donc chercher un mot directement sur les fichiers compressés sans avoir besoin de les décompresser, cool pas vrais !!

[root@srv log]# zgrep "authentication failure" secure-20200526.gz
Mar 22 17:23:30 http1 sshd[7212]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.162.139 user=user-ansible
Mar 22 17:23:48 http1 sshd[7212]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.162.139 user=user-ansible
Mar 22 17:25:37 http1 sshd[7212]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.162.139 user=user-ansible

Voilà j’espère que ce tuto vous a été utils, vous pouvez maintenant savoir ce qui est dans vos archive compressés sans avoir à les désarchiver/décompresser.