Ошибка scp при попытке скопировать файлы

Используйте stty stop undef и stty start undef . Таким образом, C-s и C-q освобождаются для других целей, но ScrLock по-прежнему контролирует поток.

Это может быть специфично для оболочки и / или терминала.

4
20.04.2018, 09:55
3 ответа

Это интересно. Другие ответы, которые я вижу, говорят вам поменять экранированную кавычку и экранированное пространство на строку в кавычках. На самом деле они эквивалентны, поэтому вы не увидите никаких изменений(a\'\ bдля оболочки то же самое, что и"a' b").

Проблема здесь заключается в том, как scpв удаленной системе интерпретируется переданная командная строка.

Например, это сработает:

scp John\'s\ folder/file localhost:/tmp/dst

Но это не удастся:

scp localhost:/tmp/src/John\'s\ folder/file /tmp/dst

(Для примера я использовал localhost; вы должны использовать user@hostдля вашей ситуации.)

Если вы включите флаг-v(verbosescp, вы сможете точно увидеть, что происходит, что приводит к сбою:

debug1: Sending command: scp -v -f /tmp/src/John's folder/file
bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file

Неудачное решение здесь заключается в том, что вам нужно экранировать специальные символы (, включая пробелы )дважды -один раз для локальной оболочки и один раз для удаленной оболочки:

scp localhost:"/tmp/src/John\'s\ folder/file" /tmp/dst
3
27.01.2020, 20:57

SCP необходимо включить в кавычки один параметр целиком. 2 разных ответа передо мной частично верны,но правильный ответ

scp "macbook@192.168.0.3:/Users/macbook/desktop/John's folder/file" storage/folder

Обратите внимание, что первый параметр заключен в кавычки, а второй нет. -Если бы оба параметра были заключены в один экземпляр кавычек, как предполагает один из комментариев, /bin/scp вызывал бы его как один параметр и был бы ожидая другого параметра после этого.

scp "macbook@192.168.0.3:/Users/macbook/desktop/John's folder/file storage/folder"будет считан как отдельный параметр. Несмотря на то, что там есть пробел, двойные кавычки его избегают.

Наконец, размещение кавычек в середине параметра, такого как scp macbook@192.168.0.3:"/Users/macbook/desktop/John's folder/file" storage/folder, сокращает параметр вдвое и не имеет смысла для оболочки, поскольку user@host :/path/to/directory является одним полным параметром. Вы можете использовать его части, но вы не можете разрезать его пополам, иначе он будет рассматриваться как 2 разных параметра.

0
27.01.2020, 20:57

У меня работает тройной побег:

scp macbook@192.168.0.3:bob\\\'s\\\ file /local/path/

Они тоже работают:

scp "macbook@192.168.0.3:bob\'s\ file" /local/path/
scp macbook@192.168.0.3:"bob\'s\ file" /local/path/

Они не:

scp "macbook@192.168.0.3:bob's file" /local/path/
scp macbook@192.168.0.3:bob\'s\ file /local/path/
0
27.01.2020, 20:57

Теги

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