Ich habe den Befehl cat in einigen Online-Inhalten gesehen und war neugierig, was cat
passiert ist und wofür er im Kontext von jemandem gedacht ist, der nur einige einfache Befehlszeilen-Inhalte ausführt.
Ich habe den Befehl cat in einigen Online-Inhalten gesehen und war neugierig, was cat
passiert ist und wofür er im Kontext von jemandem gedacht ist, der nur einige einfache Befehlszeilen-Inhalte ausführt.
Antworten:
cat
‚s Hauptzweck ist es , con Katze enate Dateien. cat file1 file2 ...
zeigt den Inhalt file
, file2
und die anderen nacheinander, als ob der Inhalt in einer einzigen Datei war. Siehe die Manpage :
NAME
cat - concatenate and print files
Es ist für die Verwendung gedacht, wenn entweder:
Ein Zielbefehl kann nicht aus Dateien lesen, und Sie müssen mehrere Dateien an ihn übergeben. Ein Beispiel ist das tr
Dienstprogramm. Normalerweise würden Sie mit einer Datei Folgendes tun:
tr < file
Bei mehreren Dateien kann die Umleitung jedoch nicht verwendet werden. Sie müssen also Folgendes tun:
cat file1 file2 ... | tr
wc
, das die Anzahl für jede Datei zusammen mit den Dateinamen ausgibt, bei denen Sie möglicherweise nur die Gesamtsumme ohne Dateinamen haben wollten.Denken Sie daran , dass die meisten Befehle auftreten ( grep
, sed
, awk
, sort
, ...) können Dateien völlig in Ordnung lesen.
Wenn Sie möchten , sehen Sie den Inhalt einer Datei, verwenden Sie einen Pager - less
und more
sind beide hervorragend geeignet Dateien präsentieren für die Anzeige, und sind viel bequemer zu bedienen.
cat
ist einer der am häufigsten verwendeten Befehle unter Unix-ähnlichen Betriebssystemen. Es hat drei verwandte Funktionen in Bezug auf Textdateien:
Die allgemeine Syntax der Katze lautet:
cat [options] [filenames] [-] [filenames]
Die häufigste Verwendung von cat ist das Lesen des Inhalts von Dateien, und cat ist häufig das bequemste Programm für diesen Zweck. Um eine Textdatei zur Anzeige auf dem Anzeigemonitor zu öffnen, müssen Sie lediglich das Wort cat gefolgt von einem Leerzeichen und dem Namen der Datei eingeben und anschließend die EINGABETASTE drücken. Im Folgenden wird beispielsweise der Inhalt einer Datei mit dem Namen file1 angezeigt:
cat file1
Die zweite Rolle der Katze ist die Verkettung. (Dies ist die Quelle für den merkwürdigen Namen der Katze.) Die Originaldateien sind nicht betroffen.
Der folgende Befehl verkettet beispielsweise Kopien des Inhalts der drei Dateien file1, file2 und file3:
cat file1 file2 file3
Der Inhalt jeder Datei wird auf dem Monitorbildschirm angezeigt. Diese Ausgabe kann genauso einfach mit dem Ausgabeumleitungsoperator in eine andere Datei wie Datei4 umgeleitet werden.
cat file1 file2 file3 > file4
Dank @muru comment: cat ist in der Lage, neue Dateien abhängig von der Shell-Umleitungsfunktion und nicht von sich selbst zu erstellen
Bei kleinen Dateien ist dies oft einfacher als mit vi, gedit oder anderen Texteditoren. Dazu geben Sie cat gefolgt vom Umleitungsoperator für die Ausgabe und dem Namen der zu erstellenden Datei ein ENTERund drücken dann und zuletzt gleichzeitig die Tasten Ctrl& d.
Beispielsweise kann eine neue Datei mit dem Namen file1 durch Eingabe erstellt werden
cat > file1
Drücken Sie dann ENTERund gleichzeitig die Tasten Ctrl& d.
PS1: Wenn eine Datei mit dem Namen file1 bereits vorhanden ist, wird sie überschrieben
PS2: Sie können an die verlassene Datei anhängen, indem Sie den Operator append ( >>
Beispiel cat >> file1) verwenden
Der Befehl cat kann auch verwendet werden ( abhängig von der Shell-Umleitungsfunktion), um eine neue Datei zu erstellen und die Daten aus einer vorhandenen Datei zu übertragen. Beispiel: Kopie der Datei erstellen oldfile.txt
:
cat oldfile.txt > newfile.txt
Verweise:
cat
Diese Dateien werden nicht erstellt - die Shell ist, wenn Sie die Umleitung verwendet haben. Das hättest du auch tun können echo foo > file1
.
cat
was tatsächlich von etwas anderem getan wird. Zum Beispiel hat das Ausführen less file1 > file2
(oder grep '.*' file1 > file
oder awk 1 file1 > file2
oder ...) den gleichen Effekt. Das Gleiche gilt für 4. Dies sind nur Missbräuche.
> file
und das gleiche Ergebnis liefern, aber kann ich es nicht für gültig halten, das mit cat zu tun ?!
cat
die Datei nicht erstellt wird. Zu sagen, dass cat
die Datei erstellt oder kopiert wird, ist schlichtweg falsch.
Es kann verwendet werden, um den Inhalt einer Datei anzuzeigen. Zum Beispiel: cat "my file.txt"
. Sie können auch tun man cat
, um Details darüber anzuzeigen, wofür cat
verwendet werden kann.
Hier ist andere Möglichkeit zum Erstellen von Dateien mit Shell-Umleitung (oder Piping) und cat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
gibt die folgenden Zeilen aus, bis die Zeichenfolge EOF
erneut angetroffen wird. Dann leitet >
( >>
) die Ausgabe in die Datei um foo.sh
. Wenn Sie alternativ eine Datei als Root erstellen müssen, können Sie die Ausgabe an den Befehl weiterleitentee
( tee -a
) leiten, der vom Befehl ausgeführt wird sudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
), wenn sie erfolgreich erstellt wurde ( &&
).$
) sollte \
innerhalb der Ausgabe von (mit ) maskiert werden cat
.
< <(cat file[12]) tr
sowie<<<$(cat file[12]) tr
beide absolut gültige Möglichkeiten sind mehrere Dateien zu umleiten. Natürlich brauchen Siecat
das auch, nur die Rohrleitungen sind nicht der einzige Weg.