Я припускаю, що ви вже маєте уявлення про те, як ви будете ідентифікувати файл, який ви хочете скопіювати, і що ви можете, або вже маєте, написали сценарій або набір команд, які будуть працювати на віддаленій машині, яка робить цю ідентифікацію .
Крім того, я також припускаю, що ці команди друкують на стандартному виході повний шлях до файлу або відносний шлях до файлу щодо домашнього каталогу користувача 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.
У наведеному вище коді позначення "$ ()" - це спосіб захоплення стандартного виводу команди як змінної оболонки. Це досить стандартно, але якщо ви використовуєте оболонку, яка не розуміє її, ви можете замість цього оточити команду "back-ticks", які є знаками наголосу зліва від клавіші 1 на більшості американських клавіатур.