Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/01/2022, à 20:54

cristobal78

(résolu) créer et extraire les fichiers d'archives tar et tar.gz

Bonjour à tous

J'ai écrit 2 scripts hyper basiques pour faire une archive de type tar ou tar.gz et 2 autres pour extraire les fichiers des 2 types d'archive.
L'idée étant de les mettre ensuite dans les "scripts Nautilus" (ou Nemo) pour pouvoir  les activer d'un click droit (menu contextuel) à partir de Nautilus (ou Nemo)

#!/bin/bash
# nom du script = tar-make

pas_fichier="Fin du programme :\n\nil faut sélectionner un fichier et non un répertoire"

# vérif qu'on a choisi un fichier et pas un rep.
fich_ou_rep () { fichier=$1 ; if [ -d "$fichier" ] ; then zenity --warning --text="$2" ; exit ; fi ; }

### script ###
fichier=$@
	fich_ou_rep "$fichier" "$pas_fichier"  # on sort si on a choisi un rep au lieu d'un fichier
tar -cvf monarchive.tar $fichier 
#!/bin/bash
# nom du script = tar-xtr

pas_fichier="Fin du programme :\n\nil faut sélectionner un fichier et non un répertoire"

# vérif qu'on a choisi un fichier et pas un rep.
fich_ou_rep () { fichier=$1 ; if [ -d "$fichier" ] ; then zenity --warning --text="$2" ; exit ; fi ; }

### script ###
archive=$1
	fich_ou_rep "$archive" "$pas_fichier"  # on sort si on a choisi un rep au lieu d'un fichier
tar -xvf $archive
#!/bin/bash
# nom du script = tar-z-make

pas_fichier="Fin du programme :\n\nil faut sélectionner un fichier et non un répertoire"

# vérif qu'on a choisi un fichier et pas un rep.
fich_ou_rep () { fichier=$1 ; if [ -d "$fichier" ] ; then zenity --warning --text="$2" ; exit ; fi ; }

### script ###
fichier=$@
	fich_ou_rep "$fichier" "$pas_fichier"  # on sort si on a choisi un rep au lieu d'un fichier
tar -zcvf monarchive.tar.gz $fichier 
#!/bin/bash
# nom du script = tar-z-xtr

pas_fichier="Fin du programme :\n\nil faut sélectionner un fichier et non un répertoire"

# vérif qu'on a choisi un fichier et pas un rep.
fich_ou_rep () { fichier=$1 ; if [ -d "$fichier" ] ; then zenity --warning --text="$2" ; exit ; fi ; }

### script ###
archive=$1
	fich_ou_rep "$archive" "$pas_fichier"  # on sort si on a choisi un rep au lieu d'un fichier
tar -zxvf $archive

Tout marche et j'ai pu créer une archive tar et une tar.gz des mes fichiers d'un dossier.
Ça s'était pour voir l’intérêt de la compression.
Mais après avoir fait ça j'ai constaté qq-chose de curieux lors de l'extraction des fichiers avec mes 2 scripts d'extarction.
En effet le script écrit pour extraire les fichiers de l'archive tar (pas tar.gz) semble marcher aussi pour extraire les fichiers de l'archive tar.gz
Autrement dit je vois que -chez moi- la commande  tar -xvf  fait la même chose que tar -zxvf

Est ce normal ?

Dernière modification par cristobal78 (Le 21/01/2022, à 17:17)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#2 Le 19/01/2022, à 22:29

Vobul

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Pour moi (tar (GNU tar) 1.34) "xvf" peut décompresser un .tar ou .tgz. Mais faire

tar zxvf test.tar

donne une error (gzip: stdin: not in gzip format).


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 19/01/2022, à 23:09

Nuliel

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Bonjour,
tar ne compresse rien, c'est juste qu'il faut que ce soit sous forme de fichier (une archive) avant de compresser en gzip ou autre. D'où le tar.gz
La commande tar fait appel à d'autres programmes pour la partie compression/décompression, ici gzip (via le paramètre z) qui va permettre de décompresser des archives gzip.
Le paramètre x permet visiblement de choisir le bon programme à appeler pour décompresser, dans le cas de tar aucun, et dans le cas de tar.gz le programme gzip

Dernière modification par Nuliel (Le 19/01/2022, à 23:11)

Hors ligne

#4 Le 20/01/2022, à 00:12

MicP

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Bonjour

J'ajoute que la commande tar n'est d'aucune utilité si on l'utilise pour n'archiver qu'un seul fichier.

S'il ne s'agit que d'un seul fichier à compresser, autant utiliser directement le programme de compression (gzip ou gzip2 ou xz ou autres …)
et si l'on veut obtenir un bon taux de compression il faudra choisir le programme de compression et les paramètres à lui donner en fonction du type de fichier à compresser (et du temps dont on dispose).

Voir le manuel de la commande tar :

man tar
man tar a écrit :
…
DESCRIPTION
       GNU tar est un programme d’archivage conçu pour stocker plusieurs fichiers dans un seul (une archive) et pour manipuler de telles archives.
       L’archive peut être soit un fichier normal, soit un périphérique (par exemple, un lecteur de bande — tape drive — d’où le nom signifiant tape archiver), qui peut être situé sur une machine locale ou distante.
…

Dernière modification par MicP (Le 20/01/2022, à 00:40)

Hors ligne

#5 Le 20/01/2022, à 01:46

cristobal78

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

bonsoir et merci de vos interventions.

@ vobul
je n'ai pas de message d'erreur avec mes scripts

@ MicP
je parle bien dans mon post "des fichiers". Bien sur je ne vais pas archiver (tar) un fichier mais bien les fichiers de mon choix ou tous d'un répertoire
C'est que je crois en tout cas avoir fait en écrivant

fichier=$@

@ Nuliel 
Avant de faire mes script j'ai lu la doc :
https://doc.ubuntu-fr.org/tar

On y lit que tar ne compresse pas ce que je savais.
Mais on lit aussi :
Compression avec gzip (.tar.gz)
Création

 tar zcvf votre_archive.tar.gz votre_dossier/

Extraction

tar zxvf votre_archive.tar.gz

donc à priori une cde tar avec -zcvf devrait compresser
Cela dit j'ai vu après une petite note qui m'avais échappé :

L'option z n'est pas indispensable pour la décompression (tar version>1.27) 

qui explique ce que  j'avais constaté. Donc j'ai finalement appris au moins ça.

Autre question : pourriez vous m'aider à améliorer mes scripts pour la partie "compression" ?


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#6 Le 20/01/2022, à 09:00

iznobe

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Bonjour, ce fil est constructif , mais chez moi , avec nemo 4.8.6 sur budgie 21.10 , ca existe deja l ' option clic droit sur un fichier puis compresser et decompresser .


retour utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#7 Le 20/01/2022, à 12:09

cristobal78

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Salut iznobe

Tu as raison. Mes  laptop sous ubuntu 20.04 et Nemo offrent, comme tu le rappelles, smile l’option "Click droit > Compresser > Créer" avec même une option pour ajouter un mot de passe.
Mais mes questions portent sur un vieux Dell (fixe) sur lequel seule la Mint-20 - XFCE a bien voulu s'installer.

Or avec Mint-XFCE c'est Thunar, l'explorateur de fichiers par défaut que d'ailleurs  je n'ai trouvé pas terrible et que j'ai désactivé.
Par quoi le remplacer ?
Comme je suis sous XFCE pour avoir en principe des logiciels "légers", je n'ai pas voulu remplacer Thunar par Nemo.

Au contraire j'ai activé "Caja" (l'explorateur par défaut de Mint-MATE) à la place (bien sur sans supprimer Thunar qu'il faut toujours conserver sous XFCE !!! ) qui n'offre pas l'option "Click droit > Compresser > Créer "


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#8 Le 20/01/2022, à 12:59

Tawal

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Hello,

Pour Thunar, le clic droit fonctionne, il faut juste choisir "Créer une archive".
Ce qui t'ouvre une fenêtre avec toutes les options dont tu as besoin.

Je pense que pour Caja, cela doit être la même chose.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#9 Le 20/01/2022, à 21:17

kamaris

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Pour Thunar il faut installer thunar-archive-plugin aussi.

Hors ligne

#10 Le 20/01/2022, à 21:35

MicP

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Bonjour

Dans thunar sur debian XFCE et Xubuntu
J'ai aussi accès, dans un menu contextuel, à l'option Créer une archive…
qui fonctionne autant sur les fichiers sélectionnés que sur un répertoire

Capture-d-cran-2022-01-20-20-30-54.png<-Cliquez sur l'image pour la voir en taille réelle

Capture-d-cran-2022-01-20-20-29-48.png<-Cliquez sur l'image pour la voir en taille réelle

Dernière modification par MicP (Le 20/01/2022, à 21:43)

Hors ligne

#11 Le 21/01/2022, à 01:51

cristobal78

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

1-- Comme j'ai nemo sur un de mes PC en ubuntu 20.04 j'ai vérifié chez moi et ça marche comme le disent les intervenants précédents :
- Si le fichier n'est pas une archive alors le menu contextuel propose "compresser", ce qui revient à créer un tar.gz
- Si on se place sur une archive compressée alors le menu contextuel se modifie et propose cette fois "extraire ici".
Donc OK pour nemo.  smile

2- De retour sur ma mint 20 xfce j'ai regardé c que thunar propose :  pareil que nemo
Donc OK pour thunar. smile

3- Puis, toujours sur ma mint 20 xfce, j'ai testé ce que propose caja mais là il n'y a rien de proposé par le menu contextuel. sad sad sad
Après ballade sur le net j'ai compris qu'il fallait installer (via synaptic par ex.)  des "caja-actions"
Ceci fait il faut ensuite aller dans Caja > éditer > préférences > extensions ... et là cocher les cases.
Apparemment pour finir  il faut  rebooter le PC, ce que j'ai fait, mais pas sur que ce soit nécessaire.

Voilà ce que ça a changé pour caja :
- si je clique droit sur une archive alors le menu contextuel me propose "ouvrir avec gestionnaire d'archives"  smile

Malheureusement, et malgré les caja-actions, là où nemo (ou Thunar") me proposait de "compresser"  le menu contextuel de caja ne me propose pas de "compresser".  sad sad sad

Y aurait il une "caja-actions" qui m'a échappé et donc que je n'aurais pas activé ???


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#12 Le 21/01/2022, à 06:43

MicP

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Bonjour

Je n'ai pas caja installé sur mes systèmes,
mais en faisant des recherches, je viens de trouver ce fil de discussion
dont voici un extrait :


Note: if Caja and its archiving functionality are not installed -
one can install them with sudo apt install caja engrampa. Here Engrampa is archive manager for MATE desktop (an analog for file-roller in GNOME).

Donc, en supposant que caja est déjà installé :

sudo apt install engrampa

Dernière modification par MicP (Le 21/01/2022, à 06:55)

Hors ligne

#13 Le 21/01/2022, à 17:17

cristobal78

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

bravo MicP

tu es un vrai Sherlock Holmes. smile
Aussi tôt lu, aussitôt installé et essayé et ça marche : je lance caja, je clique droit  sur un fichier et le menu contextuel me propose dorénavant l'option "compresser".

Franchement il fallait le trouver le "engrampa". Un nom qui ne fait vraiment penser à rien.
Pourquoi cette "action" n'est elle pas avec les autres caja actions ?
Pourquoi donc des choses aussi simples peuvent elles si différentes selon qu'on travaille avec cinnamon/nemo, mate/caja ou xfce/thunar ?
Où est donc la logique ou la cohérence dans tout ça ?

En conclusion :
merci à toi MicP (et aux autres), je passe en résolu et je met mes 4 scripts maintenant inutiles à la corbeille tongue


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#14 Le 21/01/2022, à 19:07

erresse

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

cristobal78 a écrit :

Pourquoi donc des choses aussi simples peuvent elles si différentes selon qu'on travaille avec cinnamon/nemo, mate/caja ou xfce/thunar ?

Mais tout simplement parce-que chaque gestionnaire de fichier est lié à un environnement : Caja va avec Mate et lorsqu'on installe un environnement Mate, le compresseur "Engrampa" est installé d'office en même temps que Caja. Comme tu as installé XFCE puis rajouté Caja, le compresseur par défaut de Mate n'a pas été installé...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#15 Le 21/01/2022, à 19:47

cristobal78

Re : (résolu) créer et extraire les fichiers d'archives tar et tar.gz

Bien vu !


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne