Frage Gibt es eine Möglichkeit, eine Fernbedienung "ls" zu tun, ähnlich wie "scp" eine Remote-Kopie macht?


Gibt es eine Möglichkeit, eine entfernte "ls" zu tun, ähnlich wie "scp" eine Remote-Kopie in einer Standard-Linux-Shell macht?


42
2018-03-02 12:50


Ursprung


Ich kann sehen, es wäre schön, das zu tun, aber warum nicht nur SSH in und tun ein ls? - SpacemanSpiff
@SpacemanSpiff - So können Sie es skripten. So bin ich auf diese Seite gekommen. - wobbily_col


Antworten:


Du könntest das immer tun:

ssh user@host ls -l /some/directory

Das wird SSH an den Host, ls ausführen, die Ausgabe an Sie zurückgeben und sofort trennen.


59
2018-03-02 12:55



... wenn Sie einen echten Shell-Zugriff haben. Einige Systeme haben eine spezielle Shell, die nur bestimmte akzeptiert scp und rsync Anrufe, vielleicht sftp so, und das ist es. - glglgl
wie würdest du das alias "rls" nennen? - Walrus the Cat
@WalrusheKat alias rls="ssh user@host ls -l" Starten Sie Ihre Shell neu und rls /some/directory sollte arbeiten. - chishaku
Das einzige Problem dabei ist, dass die Datei nicht gefunden einen Fehlercode zurückgibt, wenn mein Grund genau dies ist, warum ich ls aufrufen möchte. - Steve Cohen
Nicht nach @SteveCohen. Willst du den Fehlercode von der Remote-ls? Wenn ja, $? enthält es direkt nach dem Ausführen des Befehls. (z. B. gibt es 2 zurück, wenn ich dies [lokal oder remote] für eine Datei führe, die nicht gefunden wird) - Corey S.


Um alle Dateien in einem Verzeichnis aufzulisten:

rsync host.name.com:directory/path/'*'

Für etwas wie find directory / path -ls

rsync -r host.name.com:directory/path

10
2018-03-04 17:40



Wenn rsync nicht auf dem Host installiert ist, erhalten Sie etwas wie bash: rsync: command not found. Ich denke, das bedeutet, dass SSH im Hintergrund verwendet wird? - mwfearnley
Beachten Sie, dass das Format ähnlich ist ls -l. Auf meinem System sieht es nicht so aus, als gäbe es eine Option, die Dateien einfach aufzulisten. - Jonathan


Ja. SSH und mache ein ls:

ssh host ls /path

Sie können dies leicht skripten, um flexibler zu sein, oder die Syntax Host: Pfad verwenden scp Verwendet.


3
2018-03-02 12:54





Am häufigsten benutze ich dies, um das ls-Ergebnis zu erhalten, eine einfache Liste von Dateien ohne all die Berechtigungen und Daten und so, und sie in einer lokalen Datei zu behalten.

{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt

Sie können alles, was Sie wollen, innerhalb der Anführungszeichen ausführen. Die gesamte Ausgabe endet in Ihrer lokalen Textdatei. Oder wenn Sie ein großes, fieses Skript auf dem Server ausführen und alle seine Ausgaben erfassen wollen, sogar Fehler:

{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err

1
2018-06-06 20:21



In der 2. Codezeile, der { } werden nicht benötigt. - glglgl


Für alle, die über google zu dieser Frage kommen, weil sie nach einer Möglichkeit suchen, entfernte Dateien aufzulisten, aber nicht über ssh auf den fernen Server zugreifen können (der übliche Fall für Backup-Server), könnten 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]

1
2018-06-02 21:44