Làm thế nào để gzip một thư mục, chuyển qua scp và giải nén trong một lệnh?


11

Tôi thường xuyên chuyển các thư mục lớn scpvà sẽ thật tuyệt nếu tôi bằng cách nào đó có thể nén thư mục, gửi nó và giải nén tất cả trong một.

Có phải bất cư thứ gì như thế này đều được?

Câu trả lời:


29

Làm thế nào về việc sử dụng rsyncthay vì với -ztùy chọn được kích hoạt để nén?

rsync -az --progress source_dir/* remote_host:/destination_dir

Điều này cũng có thêm lợi ích là nếu tệp đã tồn tại và không thay đổi ở đích, nó sẽ không được chuyển.


7

Nhờ câu trả lời của @ johnshen64, tôi đã có thể tìm ra một thứ khá hay

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

Thật không may, điều này không cho thấy sự tiến bộ khi nó chuyển. Tôi đã nhận thấy sự cải thiện tốc độ đáng kinh ngạc bằng cách sử dụng phương pháp này.

Nếu bất cứ ai biết cách hiển thị tiến trình chuyển khoản như thế này, tôi sẽ đánh giá rất cao sự giúp đỡ :)


1
Chèn pvgiữa tarssh .
dùng1686

Điều này thật tuyệt nếu bạn không có sẵn rsync
Simon Hartcher

2

tốt, tôi sẽ sử dụng tar thay thế

tar cf - thư mục | máy chủ ssh 'tar xf -'

bạn có thể thêm v để xác minh.

Theo quan điểm của tôi thì zip cũng vậy, nhưng tar mạnh hơn đối với linux.


+1 cảm ơn sự giúp đỡ của bạn; Điều này đã cho tôi một nửa ở đó. Tôi đã có thể đưa ra một giải pháp không sử dụng -ký tự khó hiểu , cũng sử dụng nén gzip và cho phép nhắm mục tiêu một thư mục đích.
macek

@macek: Lưu ý rằng f -có thể được yêu cầu trên các hệ điều hành khác, vì hầu hết các phiên bản tar sẽ cố đọc từ ổ đĩa băng nếu không. Đọc từ stdin theo mặc định là dành riêng cho GNU.
dùng1686
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.