Я пытаюсь использовать PuTTY для подключения через SSH к Mac и загрузки некоторых файлов, указанных с помощью команды find.
Вы пытаетесь загрузить файлы в локальную систему Windows?
Помните, что PuTTY является SSH-клиентом. Все, что он делает, это отправляет напечатанный текст на ваш Mac и отображает полученный вывод. Поэтому, когда вы запускаете scp как этот, он запускается на Mac, и имена файлов должны быть указаны, как видно на Mac.
Если вы хотите перенести файлы с Mac на Windows, то это scp macpath user@windowshost:windowspath . (Похоже, вы изменили это в своей примерной команде.)
Это также означает, что вашему компьютеру Windows необходим SSH-сервер, на котором установлены возможности SCP, и что он должен разрешать входящие SSH-соединения.
  Я не уверен, как указать локальный путь Windows.
Это зависит от того, какой SSH-сервер установлен в Windows. (См. Пункт выше.) Но обычно x:\dir\file можно преобразовать в /x/dir/file . Прочтите руководство.
  В файлах есть пробелы, которые могут вызывать проблемы
Да, это вызывает проблемы с xargs . Вы пошли в правильном направлении с xargs -0 , но вам нужно сделать то же самое с find - find .... -print0 или find .... -printf "%p\0" .
Если версия find в Mac OS X не поддерживает ни -print0 ни -printf , вы можете избежать использования новых строк в качестве разделителей. В этом случае не добавляйте никаких специальных параметров для find , но измените xargs -0 на xargs -d '\n' .
Лучшая альтернатива xargs - find -exec .
  xargs -0 scp user@host:{} localpath
Здесь есть еще одна ошибка. По умолчанию xargs не заменяет {} именем файла; Вы должны конкретно указать это, используя -I "{}" .
Возможно , вы спутали это с -exec вариант в find который не работает , как это:
find . -iname "*searchtext*" -exec scp user@host:{} localpath \;
Выше я оставил порядок аргументов scp точности так, как это было в исходном примере. Но, как я уже говорил, это неправильно.