Используйте stty stop undef
и stty start undef
. Таким образом, C-s и C-q освобождаются для других целей, но ScrLock по-прежнему контролирует поток.
Это может быть специфично для оболочки и / или терминала.
Это интересно. Другие ответы, которые я вижу, говорят вам поменять экранированную кавычку и экранированное пространство на строку в кавычках. На самом деле они эквивалентны, поэтому вы не увидите никаких изменений(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
(verbose)в scp
, вы сможете точно увидеть, что происходит, что приводит к сбою:
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
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 разных параметра.
У меня работает тройной побег:
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/