Вопрос: Как сделать scp копии скрытых файлов?


Я часто использую SCP для копирования файлов, особенно связанных с веб-файлами. Проблема в том, что всякий раз, когда я это делаю, я не могу получить команду скопировать скрытые файлы (например, .htaccess).

Обычно я вызываю это:

scp -rp src/ user@server:dest/

Это не копирует скрытые файлы. Я не хочу снова ссылаться на это (делая что-то вроде scp -rp src/.* ... - и это странно . а также .. в любом случае.

Я ничего не видел в scp man «о скрытых файлах».

Как я могу это сделать?


53
2018-06-07 18:39


Источник


Я предполагаю, что src/.* также копии src/.. (родительский каталог), правильно? - Ken Sharp


Ответы:


Это должно абсолютно соответствовать скрытым файлам. В / в конце источника говорится «каждый файл в этом каталоге». Тем не менее, тестирование и исследования несут вас. Это глупое поведение.

"ответ"- добавить точку до конца источника:

scp -rp src/. user@server:dest/

реальный Ответ заключается в использовании rsync.


57
2018-06-07 18:51



Хороший трюк, которого я еще не понял. - cstamas
rsync -avz -e ssh --progress src / user @ server: dest / - MikeyB
глупый linux. Спасибо за ссылку! - rascher
Я не могу воспроизвести это поведение. scp -r source/ host:source2 копирует файлы точек. Работает в OpenSSH 5.1 с 2007 года. - Mikel


Вы можете попробовать rsync. Это лучше подходит для этой работы:

rsync -av src / user @ server: dest /

(И его страницу руководства стоит прочитать.)


24
2018-06-07 18:51



я всегда используйте параметр -progress для rsync, я не могу жить без него = D - Hofa
@Hofa Я обычно использую -P, потому что он короче, уже включает в себя --progress, а также включает в себя --partial, который может иметь смысл, если я уже заинтересован в его прогрессе ;-) - cstamas


Не ставьте слэш после исходного каталога. Ваш код будет выглядеть так:

scp -rp src user@server:dest/

Это создаст каталог «src» под «dest» на удаленном компьютере, включая все скрытые файлы. Это, вероятно, не совсем то, что вы хотите, но оно скопирует скрытые файлы в src.


9
2018-06-07 18:52





Решение этой проблемы решает эту проблему, это было полностью протестировано в нашей среде непрерывной интеграции

scp -rp src/. user@server:dest/
example scp -rp /usr/src/code/. content001@172.11.11.11:/usr/dest/code/

Надеюсь, поможет


3
2018-06-16 13:19





Чтобы скопировать только скрытые файлы, используйте эту команду

scp -rp /path_to_copy_hidden/.[!.]* user@host:/path_to_paste/

Фактическая игра - это /.[!.]* тег, относящийся к файлам, начинающимся с .(Скрытый)


1
2018-06-06 05:51





Ни один из вышеперечисленных решений scp не работал для меня. Тем не менее, я обнаружил, что на cygwin работало следующее: scp -r directory / * host: directory «*» Соответствовал всем видимым файлам и пропускал невидимые.


0
2018-03-23 17:23





Если пароль на пароле отключен на удаленном компьютере, и единственный способ входа в систему - через открытый ключ, вы можете использовать это:

$ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress user1@remote.host:/remote/source/directory/ /local/destination/directory/

Он также копирует скрытые файлы.

Также обратите внимание, что «user1» должен иметь разрешения на чтение этих файлов, например, вы не можете копировать папки ssh другого пользователя с помощью этого метода.


0
2017-07-07 10:31