<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Cat_%28Unix%29</id>
	<title>Cat (Unix) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Cat_%28Unix%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Cat_(Unix)&amp;action=history"/>
	<updated>2026-05-30T00:50:51Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Cat_(Unix)&amp;diff=2239821&amp;oldid=prev</id>
		<title>imported&gt;Pirkau: /* growthexperiments-addlink-summary-summary:2|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Cat_(Unix)&amp;diff=2239821&amp;oldid=prev"/>
		<updated>2025-03-12T20:46:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:2|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:cat (Unix)}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cat&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;/bin/cat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/usr/bin/cat&amp;lt;/code&amp;gt;) ist ein Systemprogramm in [[Unix]]- und [[unixoides System|unixartigen]] Systemen. Der Name leitet sich vom englischen Verb &amp;#039;&amp;#039;concatenate&amp;#039;&amp;#039; bzw. dessen Synonym &amp;#039;&amp;#039;catenate&amp;#039;&amp;#039; ab (im Deutschen etwa ‚zusammenhängen‘, ‚zusammenketten‘, ‚verketten‘). &amp;#039;&amp;#039;cat&amp;#039;&amp;#039; liest die als Argumente angegebenen Dateien und gibt den Inhalt auf &amp;lt;code&amp;gt;[[Standardausgabe#Standardausgabe (stdout)|stdout]]&amp;lt;/code&amp;gt; aus.&lt;br /&gt;
&lt;br /&gt;
== Spezifikation und Funktionsweise ==&lt;br /&gt;
Der Funktionsumfang wie auch das Verhalten von cat ist sowohl durch die [[Single UNIX Specification]] wie auch den [[Portable Operating System Interface|POSIX]]-Standard festgelegt.&amp;lt;ref name=posix&amp;gt;{{Internetquelle |url=http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cat.html |titel=cat-Spezifikation der Open Group|sprache=en|zugriff=2013-05-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Verhalten von &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; hinsichtlich [[Signal (Computer)|Signalen]], [[Fehlercode|Rückgabewerten]] und Aufrufsyntax ist dem POSIX-Standard entsprechend und für ein Kommandozeilen-Programm typisch.&amp;lt;ref name=posix&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=XBD&amp;gt;{{Internetquelle |url=http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02 |titel=POSIX Kap. 12.2 Utility Syntax Guidelines|sprache=en|zugriff=2016-10-03}}&amp;lt;/ref&amp;gt; Eine oder mehrere Dateien, deren Namen als Argument übergeben werden, werden gelesen und in einem zusammenhängenden einzelnen [[Datenstrom]] ausgegeben. Vorgeschrieben ist insbesondere, dass Dateien in jener Reihenfolge in der Ausgabe erscheinen, in der sie als Argument übergeben werden.&amp;lt;ref name=posix&amp;gt;&amp;lt;/ref&amp;gt; Die Ausgabe erfolgt immer auf [[stdout]] und kann von dort mit den üblichen Mitteln ([[Unix-Kommandos#Ein-/Ausgabeumlenkung (englisch I/O redirection)|Redirection]], [[Pipe (Informatik)|Pipeline]]) umgeleitet werden. Wie bei vielen anderen Unix-Systemprogrammen repräsentiert ein einfacher Bindestrich („-“) als Dateiname [[stdin]].&lt;br /&gt;
&lt;br /&gt;
Jede Datei kann auch mehrmals als Argument übergeben werden. Dann erscheinen ebenso viele Kopien ihres Inhalts in der Ausgabe. Mit der Option -u kann die ungepufferte Ausgabe erzwungen werden, was dann von Vorteil sein kann, wenn aus FIFOs gelesen wird.&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
Die vermutlich häufigste Verwendung des Kommandos cat – nämlich mit einer einzigen Datei als Argument – ist eigentlich ein Missbrauch (siehe [[#Unnötige Verwendung, Useless Use|unten]]). Richtig verwendet führt cat Dateien zusammen. Damit entspricht es der Funktion von copy /b … + … in von [[MS-DOS]] abgeleiteten Systemen oder auch dem Befehl type unter [[Virtual Memory System|VMS]], [[CP/M]], MS-DOS, [[OS/2]] und [[Microsoft Windows]].&lt;br /&gt;
&lt;br /&gt;
Das Beispiel gibt den Inhalt der zwei angegebenen Dateien nacheinander aus (erst &amp;lt;code&amp;gt;file1&amp;lt;/code&amp;gt;, dann &amp;lt;code&amp;gt;file2&amp;lt;/code&amp;gt;), danach die von stdin (dafür steht das &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; ) bezogene Eingabe. Die Ausgabe ist ein einheitlicher Datenstrom der nacheinander aus den drei Quellen gespeist wird und die Ausgabeumleitung sorgt dafür, dass das Ergebnis in der Datei &amp;lt;code&amp;gt;outfile&amp;lt;/code&amp;gt; abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat /path/to/file1 /path/to/file2 - &amp;gt; /some/outfile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Siehe auch: [[split (Unix)]] und [[join (Unix)]]&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Es ist ein weit verbreiteter Irrglaube, dass &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; für Textdateien genutzt werden soll. Zwar wird die Funktionsweise durch die Internationalisierungs-Variablen (LANG, LC_ALL etc.) beeinflusst, der POSIX-Standard legt allerdings ausdrücklich fest, dass &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; &amp;#039;&amp;#039;jede&amp;#039;&amp;#039; Form von Eingabedatei verarbeiten kann.&amp;lt;ref name=posix&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erweiterungen, Varianten ===&lt;br /&gt;
Abweichend vom POSIX-Standard bieten manche &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;-Implementierungen Erweiterungen des ursprünglichen Funktionsumfanges. Die &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;-Version der [[GNU]]-Initiative etwa kann Zeilennummern ausgeben, nichtdruckbare Sonderzeichen druckbar umschreiben und dergleichen. Die Verwendung solcher Erweiterungen in Scripten schränkt deren Verwendungsmöglichkeit allerdings auf die sie unterstützende Ursprungsplattform ein, weshalb dies im Allgemeinen als schlechter Scripting-Stil betrachtet wird.&lt;br /&gt;
&lt;br /&gt;
Insbesondere die Option -v (nicht druckbare Zeichen druckbar umschreiben) war Thema der Präsentation &amp;#039;&amp;#039;UNIX style, or cat -v considered harmful&amp;#039;&amp;#039; von [[Rob Pike]] auf der [[USENIX|Usenix]] Summer Conference [[1983]]. Der Vortrag wurde von einem, gemeinsam mit [[Brian W. Kernighan]] verfassten Paper &amp;#039;&amp;#039;Program Design in the UNIX Environment&amp;#039;&amp;#039;&amp;lt;ref name=pditue&amp;gt;{{Internetquelle |url=http://harmful.cat-v.org/cat-v/unix_prog_design.pdf |titel=Program Design in the UNIX Environment |sprache=en|zugriff=2013-05-08}}&amp;lt;/ref&amp;gt; begleitet, das seinerseits zu dem von Pike und Kernighan gemeinsam verfassten Standardwerk &amp;#039;&amp;#039;The UNIX Programming Environment&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;[[Brian W. Kernighan]], [[Rob Pike]]: &amp;#039;&amp;#039;The UNIX Programming Environment&amp;#039;&amp;#039;  Prentice-Hall Software Series, 1st ed. November 11, 1983, ISBN 0-13-937681-X.&amp;lt;/ref&amp;gt; führte.&lt;br /&gt;
&lt;br /&gt;
Einige Utilities, die ähnliche Funktionen wie &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; bieten, nehmen durch ihre Namensgebung auch direkt Bezug darauf. &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;zcat&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; gibt Dateien aus einem mit [[gzip]] gepackten Archiv auf &amp;lt;code&amp;gt;stdout&amp;lt;/code&amp;gt; aus. &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;tac&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; arbeitet wie &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;, gibt aber die Dateien von hinten nach vorne aus.&lt;br /&gt;
&lt;br /&gt;
=== Unnötige Verwendung, Useless Use ===&lt;br /&gt;
Weil &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; die Möglichkeit bietet, auch eine einzelne Datei als Argument zu übergeben, wird es oft dazu missbraucht, den Inhalt einer Datei als Datenstrom auszugeben. Das ist allerdings schlechter Stil, da man dafür besser eine &amp;#039;&amp;#039;Redirection&amp;#039;&amp;#039; („&amp;lt;“) benutzen oder die Datei als Argument übergeben sollte. Auf diese Art wird ein unnötiger Aufruf der Systemcalls &amp;lt;code&amp;gt;[[Fork (Unix)|fork]]()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;[[Exec (Unix)|exec]]()&amp;lt;/code&amp;gt; vermieden, der für den Aufruf von &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; notwendig wäre. Dieser Gebrauch ist so weit verbreitet, dass sich dafür im [[Usenet]] (insbesondere &amp;#039;&amp;#039;comp.unix.*&amp;#039;&amp;#039; und &amp;#039;&amp;#039;comp.os.unix.*&amp;#039;&amp;#039;) der Begriff &amp;#039;&amp;#039;useless use of cat&amp;#039;&amp;#039;, (auch kurz &amp;#039;&amp;#039;UUOC&amp;#039;&amp;#039; bzw. Variationen davon) herausgebildet hat.&amp;lt;ref name=uuoc&amp;gt;{{Internetquelle |url=http://partmaps.org/era/unix/award.html |titel=Useless Use of Cat Award |sprache=en|zugriff=2013-05-08|offline=1|archiv-url=https://web.archive.org/web/20140123014909/http://partmaps.org/era/unix/award.html|archiv-datum=2014-01-23}}&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ksh&amp;quot;&amp;gt;&lt;br /&gt;
cat /path/to/file | grep &amp;quot;something&amp;quot;       # useless use of cat&lt;br /&gt;
grep &amp;quot;something&amp;quot; /path/to/file             # korrekter Aufruf, Dateiname als Argument&lt;br /&gt;
&lt;br /&gt;
cat /path/to/file | cmd arg1 arg2 argN     # useless use of cat&lt;br /&gt;
cmd arg1 arg2 argN &amp;lt; /path/to/file         # korrekter Aufruf, Redirection&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorwiegend in der britischen Hackerszene ist auch der Begriff &amp;#039;&amp;#039;Demoggification&amp;#039;&amp;#039; für Kampagnen zur Ausmerzung solcher Scriptfehler verbreitet, was sich von britischen Slangausdruck &amp;#039;&amp;#039;moggy&amp;#039;&amp;#039; (Weiterbildung von &amp;#039;&amp;#039;mongrel&amp;#039;&amp;#039;, Mischling, ohne Stammbaum) herleitet und eine Katzen-Promenadenmischung bezeichnet. &amp;#039;&amp;#039;Demoggification&amp;#039;&amp;#039; ist also die &amp;#039;&amp;#039;Entfernung von nicht-besonderen Katzen&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Rezeption in der &amp;#039;&amp;#039;Unix Culture&amp;#039;&amp;#039; ==&lt;br /&gt;
Auf dem Gleichklang von cat und „cat“ (Katze) beruhten und beruhen viele ironische Formulierungen: die schon erwähnte &amp;#039;&amp;#039;Demoggification&amp;#039;&amp;#039; oder etwa, wenn sich jemand als &amp;#039;&amp;#039;Herder of Useless Cats&amp;#039;&amp;#039; (Hirte unnützer Katzen) bezeichnet.&amp;lt;ref name=ucult&amp;gt;{{Internetquelle |url=http://www.unix.com/members/302039228.html |titel=Benutzertitel &amp;quot;Herder of Useless Cats&amp;quot;|sprache=en|zugriff=2013-05-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die oftmalige falsche Verwendung und das für Unix-Utilities typische spartanische Interface wurden oft zur Zielscheibe eines selbstironischen Humors. Das [[Jargon File]] etwa meint im Lemma cat:&lt;br /&gt;
&lt;br /&gt;
{{Zitat|Among Unix fans, cat(1) is considered an excellent example of user-interface design, because it delivers the file contents without such verbosity as spacing or headers between the files, and because it does not require the files to consist of lines of text, but works with any sort of data.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Among Unix haters, cat(1) is considered the canonical example of bad user-interface design, because of its woefully unobvious name. It is far more often used to blast a file to standard output than to concatenate two files. The name cat for the former operation is just as unintuitive as, say, LISP&amp;#039;s cdr.&lt;br /&gt;
 |Autor=&lt;br /&gt;
 |Quelle=The Jargon File, v4.4.8&amp;lt;ref name=tjf&amp;gt;{{Internetquelle |url=http://www.catb.org/jargon/html/C/cat.html|titel=Das Lemma &amp;quot;cat&amp;quot; im Jargon File|sprache=en|zugriff=2013-05-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
 |Übersetzung=Unter Unix-Fans wird cat(1) als hervorragendes Beispiel für das Design einer Benutzeroberfläche betrachtet, weil es den Dateiinhalt ohne weitere Gesprächigkeit wie Trennungsabstände oder Kopfzeilen zwischen den einzelnen Dateien ausgibt und auch nicht auf Dateien aus Textzeilen besteht, sondern mit jeder Form von Daten zurechtkommt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter Unix-Hassern wird cat(1) als Schulbuchbeispiel für schlechtes Design der Benutzeroberfläche betrachtet wegen seines furchtbar irreführenden Namens. Es wird viel öfter dazu benutzt, mit einer Datei die Standardausgabe zu fluten als zwei Dateien zusammenzuführen. Der Name cat für erstere der genannten Tätigkeiten ist etwa so irreführend wie LISPs cdr.&lt;br /&gt;
 |ref=}}&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Ein cat existierte bereits im [[AT&amp;amp;T]]-Unix Version 1. Wer der Autor war, ist unbekannt, die [[manpage]] dazu wurde von [[Dennis Ritchie]] verfasst.&amp;lt;ref name=macman&amp;gt;{{Internetquelle |url=https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/cat.1.html|titel=cat(1) manpage von Mac OS X, 2004|sprache=en|zugriff=2013-05-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://man7.org/linux/man-pages/man1/cat.1.html Manpage zur GNU-(Non-POSIX)-Version von&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Befehle der GNU core utilities}}&lt;br /&gt;
[[Kategorie:Unix-Betriebssystemkomponente]]&lt;br /&gt;
[[Kategorie:Unix-Software]]&lt;br /&gt;
[[Kategorie:GNU Core Utilities]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Pirkau</name></author>
	</entry>
</feed>