Commande compress

Objectif

Compresse les données.

Syntaxe

compress-c ] [ -C ] [  -d ] [  -F ] [  -f ] [  -n ] [  -q ] [  -v ] [ -V ] [  -b Bits ] [ File ... ]

Descriptif

La commande compress compresse les données en utilisant le codage Lempel-Ziv adaptatif pour réduire la taille des fichiers. Chaque fichier d'origine spécifié par le paramètre Fichier est remplacé, dans la mesure du possible, par un fichier compressé dont le nom est suivi de la mention .Z . Si le processus appelant dispose des privilèges appropriés, le fichier compressé conserve la même propriété, les mêmes modes et la même heure de modification que le fichier d'origine. Si le chemin d'accès au fichier indiqué est supérieur à 1023 octets, la commande ne fonctionne pas. Si aucun fichier n'est spécifié, l'entrée standard est compressée dans la sortie standard. Si la compression ne réduit pas la taille d'un fichier, un message est écrit en erreur standard et le fichier d'origine n'est pas remplacé.

Remarque: Les fichiers doivent disposer des droits appropriés pour être remplacés.

La quantité de compression dépend de la taille de l'entrée, du nombre de bits par code spécifié par la variable Bits et de la distribution des sous-chaînes communes. Généralement, le code source ou le texte en anglais est réduit de 50 à 60%. La compression de la commande compress est plus compacte et prend moins de temps à calculer que la compression obtenue par le codage Huffman (tel qu'utilisé dans la commande pack ) ou le codage Huffman adaptatif.

Indicateurs

Tableau 1. Indicateurs
Article Descriptif
-b Bits Indique le nombre maximal de bits à utiliser pour remplacer les sous-chaînes communes dans le fichier. La valeur de la variable Bits doit être comprise entre 9 et 16 bits. La valeur par défaut de la variable Bits est 16 bits. Lors de la compression des données, l'algorithme utilise d'abord tous les codes à 9 bits (257 à 512) pour remplacer autant de sous-chaînes que possible. Il utilise ensuite tous les codes 10 bits, et ainsi de suite, jusqu'à ce que la limite spécifiée par l'indicateur -b soit atteinte.
-c Ecrit dans la sortie standard. Aucun fichier n'est modifié.
-C Produit une sortie compatible avec la révision BSD (Berkeley Software Distribution) 2.0.
-d Fait en sorte que la commande compress fonctionne exactement comme la commande uncompress .
-f ou -F Force la compression. Les indicateurs -f et -F sont interchangeables. Remplace le fichier File.Z s'il existe déjà.

Une fois la valeur de la variable Bits atteinte, la commande compress vérifie périodiquement le taux de compression. Si elle est croissante, la commande compress continue d'utiliser le dictionnaire de codes existant. Toutefois, si le taux de compression diminue, la commande compress supprime la table des sous-chaînes et la régénère. La régénération de la table permet à l'algorithme de s'adapter au bloc suivant du fichier. Lorsque le fichier .Z existe déjà, si l'indicateur -f n'est pas indiqué et que le processus n'est pas en cours d'exécution en arrière-plan, il vous invite à vérifier si le fichier .Z existant doit être remplacé.

-n Omet l'en-tête du fichier compressé dans le fichier compressé.
Remarque: Si cette option est utilisée, l'indicateur -n doit également être utilisé lors de l'utilisation de la commande uncompress pour décompresser le fichier.
-q Supprime l'affichage des statistiques de compression générées par l'indicateur -v . Si plusieurs indicateurs -v et -q se trouvent sur la même ligne de commande, le dernier spécifié contrôle l'affichage des statistiques.
-v Ecrit le pourcentage de compression.
-V Ecrit la version en cours et les options de compilation dans l'erreur standard.

Paramètres

Tableau 2. Paramètres
Article Descriptif
Fichier Indique le fichier à compresser.

Valeurs renvoyées

Si une erreur se produit, l'état de sortie est 1. Si la commande compress se ferme sans compresser de fichier, elle se ferme avec le statut 2. Sinon, la commande compress se ferme avec le statut 0.

La commande compress détecte une erreur et se ferme avec le statut 1 si l'un des événements suivants se produit:

  • Un fichier d'entrée n'est pas un fichier standard.
  • Un nom de fichier d'entrée est trop long pour ajouter l'extension .Z .
  • Un fichier d'entrée ne peut pas être lu ou un fichier de sortie ne peut pas être écrit.

Statut de sortie

Tableau 3. état de sortie
Article Descriptif
0 % L'opération a abouti.
1 seul Une erreur s'est produite.
2 Un ou plusieurs fichiers n'ont pas été compressés car leur taille a peut-être augmenté (et l'indicateur -f n'a pas été spécifié).
> 2 Une erreur s'est produite.

Security

Attention aux utilisateurs du contrôle d'accès à base de rôles: Cette commande peut effectuer des opérations privilégiées. Seuls les utilisateurs privilégiés peuvent exécuter des opérations privilégiées. Pour plus d'informations sur les autorisations et les privilèges, voir Base de données des commandes privilégiées dans Sécurité. Pour obtenir la liste des privilèges et des autorisations associés à cette commande, voir la commande 'lssecattr ou la sous-commande 'getcmdattr

Exemple

Pour compresser le fichier foo et écrire le pourcentage de compression dans l'erreur standard, entrez la commande suivante:

compress -v foo

Le fichier foo est compressé et renommé foo.Z.