Często używam SCP do kopiowania plików - szczególnie plików internetowych. Problem polega na tym, że za każdym razem, gdy to robię, nie mogę uzyskać polecenia kopiowania ukrytych plików (np. .Htaccess).
Zazwyczaj przywołuję to:
scp -rp src/ user@server:dest/
To nie kopiuje ukrytych plików. Nie chcę ponownie tego przywoływać (robiąc coś takiego scp -rp src/.* ...
- i to ma dziwne .
i ..
implikacje).
Na scp
stronie podręcznika nic nie widziałem na temat „dołącz ukryte pliki”.
Jak mogę to osiągnąć?
src/.*
również kopiujesrc/..
(katalog macierzysty), prawda?Odpowiedzi:
To absolutnie powinno pasować do ukrytych plików. Na końcu źródła znajduje się napis „każdy plik w tym katalogu”. Niemniej jednak testy i badania są dla ciebie wystarczające. To jest głupie zachowanie.
„ Odpowiedź ” polega na dodaniu kropki na końcu źródła:
scp -rp src/. user@server:dest/
Prawdziwa odpowiedź jest użycie rsync.
źródło
scp -r source/ host:source2
kopiuje pliki kropkowe. Działa w OpenSSH 5.1 od 2007 r..
na końcu nie działa (2019) z powodu problemów z bezpieczeństwem. Wyjaśniono to tutaj: superuser.com/questions/1403473/scp-error-uMożesz wypróbować rsync. Lepiej nadaje się do tej pracy:
(A jego strona podręcznika jest warta przeczytania.)
źródło
Nie umieszczaj ukośnika za katalogiem źródłowym. Twój kod wyglądałby tak:
Spowoduje to utworzenie katalogu „src” w obszarze „dest” na komputerze zdalnym, z uwzględnieniem wszystkich ukrytych plików. Prawdopodobnie nie jest to dokładnie to, czego chcesz, ale skopiuje ukryte pliki w src.
źródło
Poniższe rozwiązania rozwiążą problem, który został w pełni przetestowany w naszym środowisku ciągłej integracji
Mam nadzieję, że to pomoże
źródło
scp: error: unexpected filename: .
. Sprawdź, czy to działa z twoją dystrybucją, kolego Googler :)Aby skopiować tylko ukryte pliki, użyj tego polecenia
Rzeczywista gra to
/.[!.]*
znacznik odnoszący się do plików rozpoczynających się od.
(ukryty)źródło
Żadne z powyższych rozwiązań SCP nie działało dla mnie. Odkryłem jednak, że następujące działania działały na cygwin: scp -r katalog / * host: katalog „*” pasowało do wszystkich widocznych plików i pomijałem niewidzialne.
źródło
Jeśli logowanie zdalne jest wyłączone na zdalnym komputerze, a jedynym sposobem logowania jest klucz publiczny, możesz użyć tego:
Kopiuje również ukryte pliki.
Należy również pamiętać, że „użytkownik1” musi mieć uprawnienia do odczytu tych plików, na przykład nie można kopiować folderów ssh innego użytkownika za pomocą tej metody.
źródło
Ponieważ
scp
obsługuje wyrażenia regularne, dobrze to załatwi:scp -rp src/(*|.*) user@server:dest/
źródło
Rozproszona kontrola wersji obsługuje ukryte pliki
Z powodu podatności CVE-2018-20685 tej
/.
sztuczki nie można już używać zscp
. Jednak rozproszona kontrola wersji, jakgit
lub Hg Mecurial, będzie obsługiwać ukryte pliki, tak jak inne pliki. Oto polecenia dla mojego ulubionego Hg Mercurial :Kolejne zmiany będą musiały zostać
client:$ hg com -m "commit message"
zatwierdzone ponownie, a następnie wprowadzone za pomocąclient:$ hg push
polecenia. Dowiedz się więcej o wypychaniu zmian z tego ściągawki Hg Mercurial .źródło