Jargon file definitionEdit
Die Jargon File Version 4.4.7 listet dies als Definition von cat
:
- auf, um eine ganze Datei ohne Pause auf den Bildschirm oder eine andere Ausgabesenke auszuspucken (syn. Blast).
- Durch Erweiterung, um große Datenmengen auf ein unvorbereitetes Ziel zu werfen oder ohne die Absicht, es sorgfältig zu durchsuchen. Verwendung: als albern. Selten außerhalb Unix-Sites. Siehe auch dd, BLT.,
Unter Unix-Fans gilt cat(1) als hervorragendes Beispiel für User-Interface-Design, da es den Dateiinhalt ohne solche Ausführlichkeit wie Abstand oder Header zwischen den Dateien liefert und weil es nicht erforderlich ist, dass die Dateien aus Textzeilen bestehen, sondern mit jeder Art von Daten arbeiten.
Unter Unix-Kritikern gilt cat(1) als kanonisches Beispiel für schlechtes User-Interface-Design, wegen seines wehmütig unauffälligen Namens. Es wird viel häufiger verwendet, um eine einzelne Datei in die Standardausgabe umzuwandeln, als zwei oder mehr Dateien zu verketten., Der Name cat für die ehemalige Operation ist genauso unintuitiv wie beispielsweise LISPS cdr.
Nutzlos Verwendung von catEdit
Unnützen Einsatz von cat – (UUOC) ist common Unix-jargon für die Kommandozeilen-Konstrukte, die nur eine Funktion der Bequemlichkeit für den Benutzer. Dies wird auch als „Katzenmissbrauch“bezeichnet. Die Aktivität zum Beheben von Instanzen von UUOC wird manchmal als Demoggifizierung bezeichnet., Beispiel für einen gemeinsamen cat
Missbrauch wird in der Auszeichnung angegeben:
cat filename | command arg1 arg2 argn
Dies kann stattdessen mithilfe der Umleitung von stdin in einer der folgenden Formen neu geschrieben werden (die erste ist traditioneller):
command arg1 arg2 argn < filename <filename command arg1 arg2 argn
Über andere Vorteile hinaus ermöglichen die Eingabeumleitungsformulare dem Befehl den zufälligen Zugriff auf die Datei, während die cat
Beispiele nicht., Dies liegt daran, dass das Umleitungsformular die Datei als stdin-Dateideskriptor öffnet, auf den der Befehl vollständig zugreifen kann, während das Formular cat
die Daten einfach als Byte-Stream bereitstellt.
Ein weiterer häufiger Fall, in dem cat
unnötig ist, ist, dass ein Befehl standardmäßig auf stdin arbeitet, aber aus einer Datei liest, wenn der Dateiname als Argument angegeben wird., Die folgenden Beispiele
cat "$file" | grep "$pattern" cat "$file" | less
können stattdessen als
grep "$pattern" "$file" less "$file"
geschrieben werden Eine gemeinsame interaktive Verwendung von cat
für eine einzelne Datei besteht darin, den Inhalt einer Datei in die Standardausgabe auszugeben. Wenn die Ausgabe jedoch weitergeleitet oder umgeleitet wird, ist cat
nicht erforderlich.
Eine mit UUOC geschriebene cat
kann aus Gründen der Lesbarkeit immer noch bevorzugt werden, da das Lesen eines Piped-Streams von links nach rechts möglicherweise einfacher zu konzipieren ist., Auch eine falsche Verwendung des Umleitungssymbols „>“ anstelle von „<“ (oft nebeneinander auf Tastaturen) kann den Inhalt einer Datei dauerhaft löschen, mit anderen Worten clobbering, und eine Möglichkeit, dies zu vermeiden, ist die Verwendung von cat
mit Pipes. Vergleiche:
command < in | command2 > out <in command | command2 > out
mit: