Почему я не могу копировать с помощью scp, когда я использую *
символы в пути?
scp SERVERNAME:/DIR/* .
Какая конфигурация необходима SCP для доступа *
на пути?
ОБНОВЛЕНИЕ: проблема не на стороне сервера; pscp пытается использовать SCPv1, и поэтому появляется сообщение об ошибке:
Ответы:
Вам нужно передать буквальное экранирование,
scp
чтобы удаленный компьютер не воспринимался*
как глоб (заметьте, что он указан в двойных кавычках):источник
touch /tmp/abcd.1234; scp 'localhost:/tmp/abcd.\*' ./
:scp: /tmp/abcd.*: No such file or directory
pscp
на стороне клиента разрешить удаленную глобализацию.Я нашел совет Патрика правильным, хотя ответ Криса поставил меня на правильный путь. Используйте кавычки, и вам не понадобится обратная косая черта перед звездочкой.
scp: /tmp/file_num*.csv: нет такого файла или каталога
суждений_for_job_171642.csv 100% 32 КБ 32,0 КБ / с 00:00
суждений_for_job_172394.csv 100% 548 КБ 182,6 КБ / с 00:03
источник
*
), а не в том, как сделать глобализацию только на пульте.ПРИМЕЧАНИЕ. Предлагаемое ниже решение протестировано и, как известно, работает правильно.
Одинарные кавычки нарушат раскрытие переменной, если вы наложили псевдоним на часть пути, который вы используете.
Вот скрипт, который использует кавычки DOUBLE для сценария использования глобализированного имени файла command-configure_ .tar.gz *, используя путь с псевдонимом переменной:
После закрывающей двойной кавычки цель локального каталога создается путем простого извлечения домашнего каталога указанного пользователя из / etc / passwd .
Сама команда scp предваряется
sshpass
и-o StrictHostKeyChecking=no
полностью автоматизируетscp
команду без вмешательства пользователя. Выглядит извилистым, но лучше, чем пути жесткого кодирования, которые время от времени будут меняться.Anyhoo, пример использования двойных кавычек, где переменные в пути, который вы глобализируете, должны иметь возможность расширяться. НТН
источник