Sie können dies ausprobieren und sehen, ob es funktioniert. Es funktioniert gut für mich unter macOS, wenn ich zu verschiedenen Linux-Servern (CentOS, Ubuntu usw.) gehe:
RECENT=$(ssh [email protected] ls -lrt /remote/path/ | awk '/.ubx/ { f=$NF }; END { print f }');
scp [email protected]:/remote/path/${RECENT} /local/path/${RECENT};
Die erste Zeile erhält die neueste Datei mit der Erweiterung von .ubx
und ordnet es dem zu $RECENT
Variable.
Die nächste Zeile führt dann einfach den SCP-Befehl selbst aus. Sie können es zu einem "One-Liner" machen, indem Sie einfach beide Zeilen zu einer dieser Zeilen kombinieren:
RECENT=$(ssh [email protected] ls -lrt /remote/path/ | awk '/.ubx/ { f=$NF }; END { print f }'); scp [email protected]:/remote/path/${RECENT} /local/path/${RECENT};
Und natürlich können Sie einfach Variablen für den Benutzer, den Hostnamen, /remote/path/
und /local/path/
und platzieren Sie es einfach in einer Bash-Skriptdatei, um es mit einem Befehl auszuführen get_latest_ubx.sh
Sie müssen also nicht jedes Mal einen Befehl wie diesen eingeben, wenn Sie ihn verwenden müssen.
#!/bin/bash
# Assign the variables.
USER='someone';
HOST='example.com';
LOCAL_PATH='/local/path/';
REMOTE_PATH='/remote/path/';
# Get the most recent `.ubx` file and assign it to `RECENT`.
RECENT=$(ssh ${USER}@${HOST} ls -lrt ${REMOTE_PATH} | awk '/.ubx/ { f=$NF }; END { print f }');
# Run the actual SCP command.
scp ${USER}@${HOST}:${REMOTE_PATH}${RECENT} ${LOCAL_PATH}${RECENT};