it-swarm-ru.tech

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

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

Я обычно призываю это:

scp -rp src/ [email protected]:dest/

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

На странице руководства scp я ничего не видел о "включении скрытых файлов".

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

64
rascher

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

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

scp -rp src/. [email protected]:dest/

реальный ответ - использовать rsync.

68
Matt Simmons

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

rsync -av src/user @ server: dest /

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

25
cstamas

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

scp -rp src [email protected]:dest/

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

9
kbyrd

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

scp -rp src/. [email protected]:dest/
example scp -rp /usr/src/code/. [email protected]:/usr/dest/code/

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

3
stevensagaar

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

scp -rp /path_to_copy_hidden/.[!.]* [email protected]:/path_to_paste/

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

1
Shahzaib Hayat Khan

Так как scp поддерживает регулярные выражения, это будет хорошо для вас:

scp -rp src/(*|.*) [email protected]:dest/

0
donmutti

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

Из-за уязвимости 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://[email protected]/dest/

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

0
Serge Stroobandt

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

0
Ray Cote

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

$ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress [email protected]:/remote/source/directory/ /local/destination/directory/

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

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

0
Gergely Lukacsy