Я предполагаю, что у вас уже есть представление о том, как определить файл, который вы хотите скопировать, и что вы можете или уже написали сценарий или набор команд, которые будут выполняться на удаленном компьютере, который выполняет эту идентификацию. ,
Кроме того, я также предполагаю, что эти команды печатают на стандартном выводе полный путь к файлу или относительный путь к файлу относительно домашнего каталога пользователя SSH, используемого для копирования. В моем примере имя сценария «getfilepath.sh», хотя это не обязательно должен быть сценарий оболочки, это может быть какой-то другой исполняемый файл или даже серия команд.
# Script to be executed on local machine.
# put any leading local commands here.
FILE=$(ssh user@emote getfilepath.sh);
scp user@remotehost:"$FILE" .
# put any trailing local commands here.
В приведенном выше коде нотация «$ ()» представляет собой способ получения стандартного вывода команды в качестве переменной оболочки. Это довольно стандартно, но если вы используете оболочку, которая ее не понимает, вы можете вместо этого окружить команду «обратными галочками», которые являются знаками ударения слева от клавиши 1 на большинстве клавиатур США.