scp
không thông minh lắm: khi được cung cấp nhiều đối số dòng lệnh là các tệp từ cùng một máy chủ từ xa, nó sẽ mở ra một kết nối mới cho mỗi đối số.
Bạn có thể sử dụng rsync
thay vì scp
, nó thông minh hơn theo cách này (và theo những cách khác).
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
Một cách tiếp cận khác là truyền một đối số duy nhất để scp
mô tả nhiều tệp .
Một cách tiếp cận khác là thiết lập hệ thống của bạn để bạn không phải xác thực mọi lúc. Tốt hơn là, thiết lập xác thực khóa , trong hầu hết các trường hợp thuận tiện hơn và an toàn hơn. Ngoài ra, hoặc ngoài ra, hãy thiết lập chia sẻ kết nối để bạn chỉ cần xác thực một lần mỗi phiên. Trong mọi trường hợp, hãy thiết lập bí danh để bạn không phải chỉ định tên người dùng và cổng mỗi lần. Trong của bạn ~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
Chạy ssh -Nf nick
để mở một kết nối, và sau đó tất cả các kết nối tiếp theo nick
sẽ cõng trên kết nối hiện có. Bây giờ bạn có thể chạy
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/