Kopiowanie plików z określonymi rozszerzeniami za pomocą scp

19

Chcę skopiować .jpgi .pngpliki z scp, ale w tym samym folderze, z którego kopiuję, są pliki o różnych rozszerzeniach. Wykonuję następujące czynności:

scp [email protected]:/folder/*.{jpg,png} .

Zostaniesz poproszony o podanie hasła dla każdego typu rozszerzenia. Czy istnieje sposób, aby to zrobić w taki sposób, że hasło wprowadzę tylko raz?

Azotan sodu
źródło

Odpowiedzi:

31

Po prostu zamień na:

scp [email protected]:'/folder/*.{jpg,png}' .

Proszę zwrócić uwagę na parę pojedynczych cytatów. W twoim przypadku lokalna powłoka ocenia wyrażenie, przekształcając je naprawdę w:

scp [email protected]:/folder/*.jpg [email protected]:/folder/*.png .

stąd dwa pytania o hasło. W tym rozwiązaniu para pojedynczych cudzysłowów chroni je przed oceną przez lokalną powłokę, więc jest to zdalna powłoka wywoływana przez (zdalny) scp, który ocenia wyrażenie.

AB
źródło
Jak mogę dołączyć wszystkie podkatalogi tego katalogu?
xxx ---
@ pushpen.paul Jeśli nie musisz wybierać tylko plików png i jpg, ale chcesz skopiować wszystko, użyj na przykład scp -r [email protected]:'/folder' . tego. Jeśli nadal chcesz skopiować tylko png i jpg w tych podkatalogach, prawdopodobnie nie możesz użyć scp lub sftp (chyba że sftp / lftp z możliwym niestandardowym skryptem), ale zamiast tego musisz uruchomić coś takiego jak ssh + para tar. Musiałbyś wtedy zadać własne pytanie z konkretnymi potrzebami.
AB
7

Lepiej używać rsync do kopiowania operacji między serwerami.

 rsync -avzh user@remoteip:/path/*.jpg [email protected]:/path/*.png localserverpath

Przy użyciu rsync poprosi o hasło tylko raz.

Również w rsync podczas przesyłania pliku sprawdzi w lokalizacji docelowej, czy plik istnieje, czy nie, a także sprawdzi, czy zawartość jest taka sama, czy nie w lokalizacji źródłowej i docelowej.

Jeśli plik istnieje również w lokalizacji docelowej, a zawartość jest taka sama, to nie skopiuje tego pliku. Skopiuje tylko pliki, które nie istnieją w docelowej lokalizacji, dzięki czemu skraca czas przetwarzania.

rsync jest często używany jako narzędzie do tworzenia przyrostowych kopii zapasowych.

Praveen Kumar BS
źródło
8
Bez względu na to, czy zostanie użyty, rsyncczy scpchodzi o to, /folder/*.{jpg,png}aby cytować '/folder/*.{jpg,png}' .
αғsнιη