Ich schreibe ein Skript, das Dateien überträgt, die regelmäßig zu einem Remote-Server hinzugefügt werden. Dazu möchte ich die ls-Ausgabe vom Remote-Server abrufen und sie dann mit einer Liste bereits heruntergeladener Dateien vergleichen.
Ich hatte Schwierigkeiten herauszufinden, wie ich die Ausgabe von ls in eine lokale Datei umleiten kann. Ich stieß aufdiese Frage, und festgestellt, dass
ls . localfile
es funktioniert.
Ich bin noch nie auf den .
Operator für die Ausgabeumleitung gestoßen. In welcher Beziehung steht er zu >
und |
?
Antwort1
Das ist es nicht. Aus der Manpage ftp(1):
dir [Remote-Verzeichnis] [Lokale Datei]
Drucken Sie eine Liste der Verzeichnisinhalte im Verzeichnis „remote-directory“ und platzieren Sie die Ausgabe optional in „local-file“. Wenn die interaktive Eingabeaufforderung aktiviert ist, fordert FTP den Benutzer auf, zu bestätigen, dass das letzte Argument tatsächlich die lokale Zieldatei zum Empfangen der „dir“-Ausgabe ist. Wenn kein Verzeichnis angegeben ist, wird das aktuelle Arbeitsverzeichnis auf dem Remote-Rechner verwendet. Wenn keine lokale Datei angegeben ist oder „local-file“ auf „-“ steht, erfolgt die Ausgabe über das Terminal.
Wenn Sie den dir
Befehl verwenden, können Sie eine lokale Datei angeben, in die die Liste geschrieben werden soll. Dies .
bezieht sich nur auf das Remote-Verzeichnis, das Sie auflisten (im Fall des .
aktuellen Verzeichnisses).