Katze unter Mac OS X wird nie beendet

3205
skylerl

Ich bin ein bisschen ein UNIX-Noob, aber ich versuche, den cat-Befehl auszuführen, um eine einfache Textdatei zu erstellen, und es funktioniert großartig. Allerdings wird cat nach dem Erstellen der Datei nie beendet. Zum Beispiel gebe ich cat> ~ / mytextfile.txt ein und drücke die Eingabetaste. Die Datei wird erstellt, der Cursor bleibt jedoch in einer leeren Zeile.

3
"cat" wird am häufigsten für das Ablegen des Inhalts einer Datei in eine andere verwendet, z. `cat file1> file2` oder füttert eine Datei in eine Pipe, z. `cat file | somecommand`. Wenn Sie einfach eine leere Datei erstellen möchten, verwenden Sie den Befehl "touch". Wenn Sie eine neue Datei mit wenigen einfachen Wörtern erstellen oder ein paar Zeilen an eine vorhandene Datei anhängen möchten, ist `echo` eine gängige Lösung. Darth Android vor 13 Jahren 3
Ah, das hat es für mich getan, danke! skylerl vor 13 Jahren 0
@Darth - Sie sollten stattdessen Ihren Kommentar als Antwort schreiben. Nifle vor 13 Jahren 1
"Das Zuführen einer Datei zu einer Pipe, z. B. cat file | somecommand" 'cat'ting' in diesem Zusammenhang ist zwar völlig üblich, aber völlig unbrauchbar. 'irgendetwas JRobert vor 13 Jahren 0

3 Antworten auf die Frage

9
ayaz

You have to send an EOF (^D) character on the standard input to tell cat to stop.

Ich sehe, wie bekomme ich ^ D? Oder was ist die Abkürzung oder was auch immer? skylerl vor 13 Jahren 0
Es ist die Tastenkombination "Strg + D". ayaz vor 13 Jahren 1
Bemerkenswert ist, dass viele * nix-Befehlszeilen-Apps (alle, die Eingaben von stdin lesen) auf dieselbe Weise funktionieren. Chris Nava vor 13 Jahren 1
7
Josh K

You're telling cat to send nothing to a file. Use touch (as mentioned) instead.

0
spicyramen

In meinem MAC muss ich zweimal EOF (^ D) senden.

Beispiel:

cat > /tmp/mypassword RandomLettersAndNumbers123 

Dann FN + Control + Dzweimal drücken .