trích xuất một vài thành viên từ kho lưu trữ tar và đường ống qua mạng


9

chỉnh sửa: Tôi muốn thêm member01member02và thư mụcblah/

tarball_1.tar.gzchứa thư mục test/với 20 tập tin. Tôi muốn trích xuất chỉ thành viên test/member01test/member02thư mục blah/và sao chép chúng vào một "remote_host" khác bằng ssh / scp.

Điều này có thể được thực hiện như là một lót? Tôi đã cân nhắc việc sử dụng tar, paxhoặc, cpionhưng tôi đoán tôi chưa thành thạo với các tiện ích này.

Câu trả lời:


15
tar -xzOf file.tar.gz file_you_want_to_extract | ssh user@host 'cat > /path/to/destination_file'
  • -x : Trích xuất
  • -z : Xuyên qua gzip
  • -f : Lấy một tập tin làm đầu vào.
  • -O : Trích xuất ra thiết bị xuất chuẩn

file_you_want_to_extractđược trích xuất từ file.tar.gzđầu ra tiêu chuẩn, được dẫn vào ssh, chạy cattrên máy chủ từ xa và ghi tiêu chuẩn của nó vào điều khiển từ xa destination_file. Tất nhiên, bạn sẽ muốn đảm bảo bạn có quyền ghi vào tệp đích bạn muốn trên máy chủ từ xa.


Tôi không rõ ràng trong bài viết gốc của mình :) Tôi cần trích xuất nhiều hơn một thành viên, cộng với một thư mục.
Felipe Alvarez

nên là tar -xz0f: sau khi fđến tên lưu trữ
Felipe Alvarez

1
Trích xuất nhiều thành viên sẽ trở nên lộn xộn nếu bạn muốn họ là một lớp, vì việc trích xuất nhiều tệp vào thiết bị xuất chuẩn không hoàn toàn có ý nghĩa. Có lẽ bạn sẽ phải tarcho mỗi cái bạn muốn giải nén, sau đó sử dụng scp -r member1 member2 blah user@host:/destination/folder/để sao chép chúng. Nếu bạn thực sự muốn làm cho nó một dòng, bạn có thể nối tất cả các lệnh đó với &&. Một tùy chọn thiết thực hơn là chỉ tạo một kịch bản lặp đi lặp lại thông qua các tùy chọn dòng lệnh và thực thi tarcho từng cái và sau đó scplà tất cả chúng ở cuối.
atanamir

ahhhhh, tôi hiểu rồi Vì vậy, không có phương pháp "lót" dễ dàng. Cảm ơn :-)
Felipe Alvarez

2
Ngoài ra, nếu "one-liner" quan trọng hơn "mất bao lâu", bạn có thể chuyển toàn bộ kho lưu trữ thông qua ssh và trích xuất các thành viên bạn muốn ở phía bên kia "cat file.tar.gz | ssh user @ host ' tar zxvf file1 file2 dir1 '
Colin
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.