PuTTY: Часто Задаваемые Вопросы
6.9. Как мне использовать PSCP для копирования файла, в имени которого содержится пробел?
Если PSCP использует новый SFTP-протокол, это не является проблемой, все имена файлов с пробелами задаются очевидным образом, с помощью одной пары кавычек:
pscp "local file" user@host: pscp user@host:"remote file" .
Но, при использовании PSCP с традиционным (устаревшим) SCP-протоколом, это может сбить с толку. Если вы указываете файл, находящийся на локальной стороне, то вы просто обрамляете имя файл кавычками, как и обычно:
pscp "local filename with spaces" user@host: pscp user@host:myfile "local filename with spaces"
Но если имя файла, которое вы указываете, находится на удалённой стороне, тогда вы должны использовать обратную косую черту и два набора кавычек:
pscp user@host:"\"remote filename with spaces\"" local_filename pscp local_filename user@host:"\"remote filename with spaces\""
Что ещё хуже, при копировании файлов с удалённого хоста на локальный, вы должны явно указывать имя локального файла, в противном случае PSCP будет жаловаться, что имена файлов не совпадают (если только вы не указали опцию -unsafe
). Следующая команда выдаст сообщение об ошибке:
c:\>pscp user@host:"\"spa ce\"" . warning: remote host tried to write to a file called 'spa ce' when we requested a file called '"spa ce"'.
Вместо этого, вы должны указать имя локального файла в полном объеме:
c:\>pscp user@host:"\"spa ce\"" "spa ce"