cat command - wird es überschrieben?


7

Um den Inhalt einer Datei an eine andere weiterzugeben, können wir zum Beispiel:

cat ~/temp_minhakey.pub >> ~/.ssh/authorized_keys

Nehmen wir an, wir müssen autorisierten_keys mehr Inhalt anhängen , aber wir möchten ihn nicht überschreiben.

Sollten wir cat erneut für die nächsten Schlüssel verwenden? Oder sollten wir mit etwas Bestimmtem kennzeichnen?

Danke im Voraus.

Antworten:


15
cat ~/temp_minhakey.pub >> ~/.ssh/authorized_keys

Hängt den Inhalt von an ~/temp_minhakey.puban ~/.ssh/authorized_keys, überschreibt ihn nicht. Das ist sicher.

Sie könnten mit einer Single verwechselt werden, >die die Datei überschreibt. Der nächste Befehl überschreibt Ihre authorized_keysDatei:

cat somefile > ~/.ssh/authorized_keys

Um den Inhalt einer Datei mit dem einer anderen zu überschreiben , wird normalerweise der Inhalt verwendet cpund nicht cat. Ersteres kann von dateisystemspezifischen Optimierungen (z. B. Copy-on-Write) profitieren, letzteres nicht.
David Foerster

7

Der letzte Teil dieses Befehls hat nichts mit Katze zu tun; Das >> ist eine Shell-Umleitung, die immer an die von Ihnen angegebene Zieldatei angehängt wird. Wenn Sie stattdessen> verwenden, wird die Datei überschrieben.

Es gibt mehrere andere Shell-Weiterleitungen, und Sie werden auf einer Befehlszeile produktiver, wenn Sie erfahren, was sie alle sind und wann Sie sie verwenden müssen:

http://www.gnu.org/software/bash/manual/bashref.html#Redirections

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.