Formatieren von pwd / ls zur Verwendung mit scp

837
eumiro

Ich habe zwei Terminalfenster mit bash. Eine ist lokal auf dem clientComputer, eine andere hat eine SSH-Sitzung auf dem Computer server. Auf der server, bin ich in einem Verzeichnis und sehe eine Datei, die ich clientmit scp von der auf kopieren möchte client.

Auf dem serversehe ich:

user@server:/path$ ls filename filename 

Jetzt kann ich scpdie clientShell eingeben, die user@server:/pathaus der serverShell auswählen und kopieren und in die clientShell einfügen . Dann den Schrägstrich eingeben und kopieren und den filenamePunkt einfügen und einen Punkt anfügen, um Folgendes zu erhalten:

user@client:~$ scp user@server:/path/filename . 

in scpeine Datei von der serverauf die client.

Nun suche ich nach einem Befehl server, der so funktionieren würde:

user@server:/path$ special_ls filename user@server:/path/filename 

das würde mir den kompletten scp-ready-String zum Kopieren und Einfügen in die clientShell geben.

Etwas in der Form

echo $USER@$HOSTNAME:$/$filename 

Arbeiten mit relativen / absoluten Pfaden.

Gibt es eine solche Befehls- / Schalterkombination oder muss ich sie selbst hacken?

Vielen Dank.

2

1 Antwort auf die Frage

4
Daniel Andersson

Ein kurzer Ausschnitt zum Drucken dieser Ausgabe zum Einfügen:

#!/bin/sh SCPUSER="myuser" SERVER="myserver" while [ $# -ne 0 ]; do printf '%s@%s:%s\n' "$" "$" "$(readlink -f "$")" shift done 

Bei der while; shiftKonstruktion können Sie mehrere Argumente angeben, die gedruckt werden, getrennt durch Zeilenumbrüche.

Das ist einfach; Der "Trick" darüber, den Sie wahrscheinlich suchen, ist wahrscheinlich nur readlink.

Sie können z. B. entweder ein ssh-agentKennwort oder ein Kennwort ohne Anmeldung über Schlüssel einrichten (wenn dies ein lokaler Server ist und die Sicherheit hierfür nicht zu streng ist), um die scpServerseite zu umschließen, um den Einfügeschritt und das direkte Einfügen von scpDateien vom Server zu vermeiden .

Vielen Dank, "readlink" ist ein sehr guter Hinweis, obwohl der Rest hackt. Wenn niemand mit einer bereits integrierten Lösung geliefert wird (ohne dass das Skript auf einen Server kopiert werden muss), akzeptiere ich diese Antwort. eumiro vor 12 Jahren 0