Как я могу использовать `scp` для развертывания файла `.htaccess` веб-сайта?

StackOverflow https://stackoverflow.com/questions/33790

Вопрос

В настоящее время я использую следующую команду для загрузки содержимого моего сайта:

scp -r web/* user@site.com:site.com/

Это прекрасно работает, за исключением того, что файл .htaccess не отправляется.Предположительно, это потому, что оно скрыто.

Я попытался добавить вторую строку для явной отправки файла:

scp -r web/.htaccess user@site.com:site.com/.htaccess

Это прекрасно работает, за исключением того, что теперь мне приходится вводить пароль дважды.

Есть какие-нибудь мысли о том, как выполнить это развертывание, используя только 1 или 0 записей моего пароля?

Это было полезно?

Решение

Просто объедините две команды:

scp -r web/* web/.htaccess user@site.com:site.com/

Если вы хотите ввести 0 паролей, вы можете настроить аутентификацию с открытым ключом для ssh / scp.

Другие советы

Некоторая справочная информация: подстановочный знак * не соответствует так называемым " точечным файлам " (т.е. файлы, имя которых начинается с точки).

Некоторые оболочки позволяют вам установить опцию, чтобы она соответствовала точечным файлам, однако выполнение этого требует больших усилий: теперь * будет также сопоставьте . (текущий каталог) и .. (родительский каталог), что, как правило, не то, что предназначено, и может быть довольно удивительным! ( rm -rf * удаление родительского каталога, вероятно, не лучший способ начать день ...)

Предупреждение: не пытайтесь сопоставить файлы с точками (например, .htaccess) с .* - это неудобно также совпадает .., и приведет к копированию всех файлов по пути в корневой каталог.Я сделал это один раз (с rm, не меньше!) и мне пришлось пересобирать сервер, потому что я напортачил /var.

@jwmittag:

Я только что провел тест на Ubuntu и .* совпадает, когда я использую cp.Вот пример:

root@krash:/# mkdir a
root@krash:/# mkdir b
root@krash:/# mkdir a/c
root@krash:/# touch a/d
root@krash:/# touch a/c/e
root@krash:/# cp -r a/c/.* b
cp: will not create hard link `b/c' to directory `b/.'
root@krash:/# ls b
d  e

Если .* не совпало .., затем d не должно быть внутри b.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top