Je suis en train de lire :
En espérant y trouver des réponses sur ce qui se passe, et je constate que les fichiers de ce dossier sont des liens.
d’où la réponse de “gzip -d” : “… Too many levels of symbolic links …”
Il faudrait peut-être utiliser la commande “file” pour déterminer si la cible à décompresser est bien un fichier compressé plutôt qu’utiliser l’extension ".gz"
exemple de retour de la commande file:
michel@deb-quad:~$ file /etc/alternatives/rename
/etc/alternatives/rename: symbolic link to `/usr/bin/prename'
michel@deb-quad:~$ file /etc/alternatives/rename.1.gz
/etc/alternatives/rename.1.gz: symbolic link to `/usr/share/man/man1/prename.1.gz'
michel@deb-quad:~$ sudo file /var/log/syslog.2.gz
/var/log/syslog.2.gz: gzip compressed data, from Unix, last modified: Tue Jul 23 02:50:33 2013
Il y a peut-être mieux à faire, car je ne suis pas programmeur, mais j’avais fait un script (voir ce fil) que je viens d’adapter pour afficher
seulement les fichiers “.gz” du dossier “/etc/alternatives/” qui sont effectivement des fichiers compressés avec gzip:
[code]#!/bin/bash
NOTE : (le “” en fin de ligne permet de “couper” la ligne de commande en plusieurs)
rechercher les fichiers “.gz” du dossier “/etc/alternatives/” et créer une liste avec un nom de fichier par ligne ("\n"),
puis renvoyer cette liste par un “pipe” ("|") vers la commande suivante.
find /etc/alternatives -name *.gz -printf “/etc/alternatives/”%f\n | \
lire la liste de lignes créée par “find”
while read FICHIER
do
# Est-ce bien un fichier “.gz” qui a été compacté par “gzip” ?
[[ $( file -ib “${FICHIER}” ) != “application/x-gzip; charset=binary” ]] &&
{
# afficher le fichier
echo “”${FICHIER}" est bien un fichier compréssé par gzip"
};
done;
[/code]
manque plus qu’à modifier la ligne “echo “”${FICHIER}” est bien un fichier compréssé par gzip"
pour que la commande “gzip -d” soit appliquée.
EDIT:
Ceci dit, je viens de faire un test en créant un dossier tempraire “/etcTmp” pour la copie de “/etc”,
puis j’y ai copié tous les fichiers du dossier “/etc” et j’ai compréssé récursivement avec “gzip -dr /etcTmp/*” tous les fichiers du dossier temporaire,
ça a donné des messages d’erreurs à cause des liens, mais la commande à compréssé tout ce qu’elle pouvait compresser.
Ensuite j’ai lancé la commande de décompression récursive sur mon dossier temporaire "gzip -dr /etcTmp"
et j’ai comparé les résultats obtenus avec :
diff -rb /etc /etcTmp | grep -v "^diff -rb " | sort
qui a donné:
Seulement dans /etc/console-setup: cached_UTF-8_del.kmap.gz
Seulement dans /etc/console-setup: Lat15-Fixed13.psf.gz
Seulement dans /etc/console-setup: Lat15-Fixed16.psf.gz
Seulement dans /etcTmp/console-setup: cached_UTF-8_del.kmap
Seulement dans /etcTmp/console-setup: Lat15-Fixed13.psf
Seulement dans /etcTmp/console-setup: Lat15-Fixed16.psf
Bilan, il ne resterait seulement que 3 fichiers à recompresser manuellement.
Le script ne servirait donc qu’à éviter les message d’erreur de la décompression, il est donc inutile pour un si petit travail.