cat (Unix)

cat (Unix)
Page d'aide sur l'homonymie Pour les articles homonymes, voir CAT.

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 de la fin au début.

Sommaire

Exemples

Pour visualiser un fichier :

cat fichier.txt

Pour visualiser deux fichiers concaténés :

cat fichier1.txt fichier2.txt

Spécifications

Les "Single UNIX Specification" (spécifications du standard UNIX) ont déterminé que le comportement de la commande 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 (byte en anglais) dès qu'il est lu, sans utiliser de mémoire tampon (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 rapide et passif du contenu d'un fichier.

Extensions

Les deux versions BSD et la version GNU 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 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 ou sur une autre sortie standard.
  2. Par extension, sert à envoyer une grande quantité 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.

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 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 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 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, remette ces récompenses. Il y a d'ailleurs un site Web consacré uniquement à l'UUOC Award ainsi qu'à d'autres récompenses similaires.

Pour les hackers, l'activité de supprimer des UUOC est parfois appelé demoggification (« Moggy » étant un terme d'anglais du Commonwealth désignant affectueusement un chat domestique, « a cat »).

Liens externes

Manuels


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article cat (Unix) de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Cat (Unix) — Pour les articles homonymes, voir CAT. 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… …   Wikipédia en Français

  • Cat (Unix) — Saltar a navegación, búsqueda El comando cat (por concatenar) es un programa de Unix usado para concatenar y mostrar archivos. Contenido 1 Especificación 1.1 Extensiones 2 UUOC …   Wikipedia Español

  • Cat (Unix) — Das Unix Programm cat wird zum Anzeigen, Formatieren und Aneinanderhängen von Textdateien genutzt. Der Name cat leitet sich vom englischen concatenate bzw. dessen Synonym catenate (deutsch: aneinanderhängen) ab. Inhaltsverzeichnis 1 Spezifikation …   Deutsch Wikipedia

  • Cat (Unix) — cat es una instrucción de unix que concatena ficheros. Sintaxis: cat sin argumentos lee datos de la entrada estándar (stdin) y los escribe en la salida estandar (stdout). cat fichero1 fichero2 ... : saca por la salida estándar el contenido de… …   Enciclopedia Universal

  • Cat (Unix) — The cat command is a standard Unix program used to concatenate and display files. The name is from , a synonym of concatenate. Specification The Single Unix Specification specifies the behavior that each of the files given in sequence as… …   Wikipedia

  • Cat (UNIX) — …   Википедия

  • Cat (disambiguation) — A cat (Felis catus) , is a smaller, domesticated member of Felidae , the biological family of the cats. A cat can also refer to any member of the Felidae family.Cat may also refer to: * Cat (kingdom), a Dark Ages Pictish kingdom * Cat… …   Wikipedia

  • Unix — (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT T, entre los que figuran Ken Thompson, Dennis Ritchie y …   Wikipedia Español

  • UNIX-Kommandos — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

  • Unix-Befehle — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”