Cat (Unix) - Définition et Explications

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

cat, qui vient de l'anglais « catenate », synonyme de « concatenate » (soit : concaténer) est une commande Unix standard permettant de concaténer des fichiers ainsi que d'afficher leur contenu sur la sortie standard — habituellement un terminal Unix ; le plus souvent des « shells », notamment Bash, zsh, Csh, etc.

tac est l'équivalent de cat mais affiche le contenu d'un fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce,...) de la fin au début.

Spécifications

Les "Single UNIX (UNIX (marque déposée officiellement comme UNIX, parfois aussi écrit comme Unix avec...) Specification" (spécifications du standard UNIX) ont déterminé que le comportement de la commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un...) serait d'afficher le contenu de chacun des fichiers donnés en argument sur la sortie standard en une seule et même séquence. Utilisée avec l'option "-u" (non utilisée par la version GNU), cette commande affiche chaque octet (L’octet est une unité de mesure en informatique mesurant la quantité de...) (byte en anglais) dès qu'il est lu, sans utiliser de mémoire tampon (En informatique, une mémoire tampon, couramment désignée par le terme anglais buffer, est une...) (buffer).

Si l'option "-" est appliquée, cat lira l'entrée standard (exemple : clavier) et l'affichera dans la séquence de sortie. S'il n'y a aucun fichier en argument, cat lira à partir de l'entrée standard.

cat permet donc l'affichage (L' affichage désigne l'application d'une surface de papier script dans un lieu public(et non du...) rapide et passif du contenu d'un fichier.

Extensions

Les deux versions BSD et la version GNU (GNU est un projet de système d'exploitation composé exclusivement de logiciels libres.) coreutils de cat supportent les options suivantes :

  • -b (GNU seulement : --number-nonblank), numéroter les lignes non-blanches en sortie.
  • -n (GNU seulement : --number), numéroter les lignes en sortie.
  • -s (GNU seulement : --squeeze-blank), fusionne en une seule toutes les lignes blanches qui se suivent.
  • -v (GNU seulement : --show-nonprinting), affiche les caractères non-imprimables comme s'ils étaient visibles à l'exception des tabulations et des caractères de fin de ligne (EOL : End Of Line).
  • -t avec BSD ou -T avec GNU, a le même comportement que -v mais affiche aussi les tabulations sous forme de ^I.
  • -e avec BSD ou -E avec GNU, a le même comportement que -v mais affiche aussi les caractères de fin de ligne sous la forme $.

Un peu de culture Unix

Définition (Une définition est un discours qui dit ce qu'est une chose ou ce que signifie un nom. D'où la...) du Jargon File

Le « Jargon File », dans sa version 4.3.3, définit la commande cat comme suit :

  1. Sert à afficher, sans s'arrêter, un fichier entier à l'écran (Un moniteur est un périphérique de sortie usuel d'un ordinateur. C'est l'écran où s'affichent...) ou sur une autre sortie standard.
  2. Par extension, sert à envoyer une grande quantité (La quantité est un terme générique de la métrologie (compte, montant) ; un scalaire,...) de données à une cible non préparée ou n'ayant pas l'intention de les lire soigneusement. La commande est donc considérée comme limitée.

Pour les fans d'Unix, cat est considéré comme un excellent exemple de ce qu'est une conception "User-interface" parce que, d'une part, elle donne le contenu du fichier sans complément inopiné comme une espace ou des séparateurs entre les fichiers et, d'autre part, elle ne nécessite pas que le fichier soit constitué de lignes de texte mais fonctionne avec n'importe quel type de donnée (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent...).

Pour les détracteurs d'Unix, cat est considéré comme l'archétype d'une mauvaise conception "User-interface" car son nom est particulièrement mal choisi. En effet, cette commande est bien plus utilisée pour afficher un unique fichier sur la sortie standard que pour concaténer plusieurs fichiers. De fait, le nom cat est donc aussi non-intuitif que le nom de la commande cdr en Lisp (Lisp est la plus ancienne famille de langages impératifs et fonctionnels. Développé...) par exemple qui, elle, a pour but d'extraire un pointeur.

Cat et UUOC

UUOC, extrait de comp.unix.shell sur Usenet, signifie « Useless Use of cat » (soit : utilisations inutiles de cat). Comme certains de comp.unix.shell le firent remarquer, le but de la commande cat est de concaténer des fichiers. Si elle est utilisée sur seulement un fichier, c'est une perte de temps (Le temps est un concept développé par l'être humain pour appréhender le...) et un surcoût inutile de ressources : « The purpose of cat is to concatenate (or 'catenate') files. If it's only one file, concatenating it with nothing at all is a waste (WASTE est un protocole peer to peer et ami à ami ainsi qu'une partie de logiciel developpé par...) of time, and costs you a process »

Exemples d'UUOC

On voit faire :

      cat file | autres_commandes avec leurs arguments      

au lieu de :

      <file autres_commandes avec leurs arguments      

ou plus classiquement :

      autres_commandes avec leurs arguments <file      

qui font la même chose mais sont moins chers en termes de ressources.

Depuis 1995, des récompenses sont remises occasionnellement pour les meilleures utilisations inutiles de cat (UUOC). Il arrive souvent que Randal L. Schwartz, auteur de nombreux livres sur Perl et consultant en programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent...), remette ces récompenses. Il y a d'ailleurs un site Web (Un site Web est un ensemble de pages Web hyperliées entre elles et mises en ligne à une...) consacré uniquement à l'UUOC Award ainsi qu'à d'autres récompenses similaires.

Pour les hackers (Hackers est un film américain réalisé par Iain Softley, sorti en 1995. Connu aussi...), l'activité (Le terme d'activité peut désigner une profession.) de supprimer des UUOC est parfois appelé demoggification (« Moggy » étant un terme d'anglais du Commonwealth désignant affectueusement un chat (Le chat domestique (Felis silvestris catus) est un mammifère carnivore de la famille des...) domestique, « a cat »).

Page générée en 0.022 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique