Gibt es eine Möglichkeit, ein Remote-"ls" zu erstellen, ähnlich wie "scp" eine Remote-Kopie in einer Standard-Linux-Shell?
Gibt es eine Möglichkeit, ein Remote-"ls" zu erstellen, ähnlich wie "scp" eine Remote-Kopie in einer Standard-Linux-Shell?
Antworten:
Das könnte man immer machen:
ssh user@host ls -l /some/directory
Dadurch wird SSH an den Host gesendet, ls ausgeführt, die Ausgabe an Sie zurückgesendet und die Verbindung sofort getrennt.
scp
und rsync
Aufrufe akzeptiert , vielleicht sftp
auch, und das war's.
alias rls="ssh user@host ls -l"
Ihre Shell neu und rls /some/directory
sollte funktionieren.
So listen Sie alle Dateien in einem Verzeichnis auf:
rsync host.name.com:directory/path/'*'
Für so etwas wie find directory / path -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. Ich vermute, dies impliziert, dass SSH im Hintergrund verwendet wird.
ls -l
. Auf meinem System scheint es keine Option zu geben, nur die Dateien aufzulisten.
Für alle, die über Google auf diese Frage kommen, weil sie nach einer Möglichkeit suchen, Remote-Dateien aufzulisten, aber nicht über ssh auf den Remote-Server zugreifen können (üblicher Fall für Backup-Server), können Sie 'sftp' verwenden.
Beispiel:
sftp username@hostname.xyz
ls
cd somedir
exit
Starten Sie eine interaktive Sitzung in einem bestimmten Remote-Verzeichnis:
sftp [user@]host[:dir]
Ich finde, meine häufigste Verwendung ist es, das Ergebnis zu erhalten, eine einfache Liste von Dateien ohne alle Berechtigungen und Daten und dergleichen, und es in einer lokalen Datei zu speichern.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Sie können innerhalb der Anführungszeichen alles ausführen, was Sie möchten. Alle Ausgaben landen in Ihrer lokalen Textdatei. Oder wenn Sie ein großes unangenehmes Skript auf dem Server ausführen und die gesamte Ausgabe erfassen möchten, auch Fehler:
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
{ }
nicht benötigt.