Как заставить scp скопировать скрытые файлы?

Raymond Chen для обнаружения, почему Windows является способом, которым это; часть содержания является очень технической разработчиком в C и по моей голове, но большая часть его не.

Чиновник блог Microsoft от Ваших команд продукта - Exchange, Word, ISA, SBS, и т.д.

Для вредоносного программного обеспечения Graham Cluley превосходен

64
задан 7 June 2009 в 21:39
9 ответов

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

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

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

Реальный ответ должен использовать rsync.

68
ответ дан 28 November 2019 в 19:31
  • 1
    Хороший прием, который я не сделал, понял это все же. –  cstamas 7 June 2009 в 22:06
  • 2
    rsync-avz-e ssh - прогрессируйте src/user@server:dest/ –  MikeyB 8 June 2009 в 02:23

Можно попробовать rsync. Это лучше подходит для этого задания:

rsync-av src/user@server:dest/

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

25
ответ дан 28 November 2019 в 19:31
  • 1
    Я всегда использую - опция прогресса для rsync, я can' t живут без него =D –  Hofa 8 June 2009 в 00:21

Не помещайте наклонную черту после исходного каталога. Ваш код был бы похож на это:

scp -rp src user@server:dest/

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

9
ответ дан 28 November 2019 в 19:31

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

0
ответ дан 28 November 2019 в 19:31

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

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

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

3
ответ дан 28 November 2019 в 19:31

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

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

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

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

0
ответ дан 28 November 2019 в 19:31

Для копирования только скрытых файлов используйте эту команду

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

На самом деле игра представляет собой тег /.[!] *, который относится к файлам, начинающимся с .(скрытые)

.
1
ответ дан 28 November 2019 в 19:31

Поскольку scp поддерживает регулярные выражения, это поможет вам:

scp -rp src / (* |. *) User @ server: dest /

0
ответ дан 28 November 2019 в 19:31

Распределенная версия control обрабатывает скрытые файлы

Из-за уязвимости CVE-2018-20685, /. трюк больше не может использоваться с scp . Однако распределенный контроль версий, такой как git или Hg Mecurial , будет обрабатывать скрытые файлы, как любые другие файлы. Вот команды для моего любимого Hg Mercurial :

server:$ sudo apt install mercurial
client:$ sudo apt install mercurial
client:$ hg init src
client:$ cd src/
client:$ hg addr
client:$ hg com -m "first commit"
client:$ cd
client:$ hg clone src ssh://user@server/dest/

Последующие изменения необходимо будет снова зафиксировать с помощью клиента: $ hg com -m "commit message" , а затем отправить их с помощью клиент: команда $ hg push . Подробнее о продвижении изменений можно узнать из этой шпаргалки по Hg Mercurial .

0
ответ дан 28 November 2019 в 19:31

Теги

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