Найдите и загрузите использование файла (файлов) PuTTY

Я пытаюсь использовать PuTTY, чтобы соединиться через SSH с Mac и загрузить указанное использование некоторых файлов команды находки. Файлы имеют пробелы в них, которые могут вызывать проблемы, и я не уверен, как указать локальный путь Windows.

Я пробую что-то вроде этого, неудачно до сих пор:

find . -iname "*searchtext*" | xargs -0 scp user@host:{} localpath

Какие-либо идеи?

Если это не возможное использование одной строки, я не возражаю против сценария Bash, который можно назвать через PuTTY?

1
задан 07.04.2011, 17:21

2 ответа

Вы являетесь лучшими от просто создания zip или tgz файлов на удаленном сервере

zip found-files.zip $(find . -iname "*searchtext*")

И затем просто используйте winscp для загрузки файла found-files.zip. Winscp будет аутентифицировать то же как шпаклевку (пароли или театрализованное представление использования при выполнении). Если Вы предпочитаете командную строку DOS, можно использовать pscp

3
ответ дан 12.12.2019, 09:14

Я пытаюсь использовать PuTTY, чтобы соединиться через SSH с Mac и загрузить указанное использование некоторых файлов команды находки.

Вы пытаетесь загрузить файлы на свою локальную систему 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, но необходимо сделать то же с findfind .... -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 порядок аргументов точно, как это было в Вашем исходном примере. Но как я сказал прежде, это неправильно.

1
ответ дан 12.12.2019, 09:14

Теги

Похожие вопросы