ssh server2 < archive.tar.gz
Bạn không chuyển bất kỳ lệnh nào tới ssh
, vì vậy nó sẽ thực thi một trình bao ở phía xa. Nội dung của archive.tar.gz
được chuyển đến shell đó trên đầu vào tiêu chuẩn của nó, vì vậy nó cố gắng phân tích nó như một kịch bản shell. Sự vui nhộn có thể xảy ra sau đó, hoặc không, tùy thuộc vào nội dung của tệp.
Nó không rõ ràng trong mô tả của bạn, nơi bạn đang chạy các lệnh này. Nếu bạn đang ở trên server1, có archive.tar.gz
trên server1 và muốn trích xuất kho lưu trữ trên server2, sau đó chuyển lưu trữ sang server2 và chạy lệnh trích xuất ở đó.
<archive.tar.gz ssh server2 'cd /home && gunzip | tar -xf -'
Hoặc, đăng nhập vào server2, gắn hệ thống tệp của server1 qua sshfs và giải nén tệp lưu trữ giống như bạn giải nén tệp cục bộ.
mkdir /tmp/server1
sshfs server1:/ /tmp/server1
cd /home
gunzip </tmp/server1/path/to/archive.tar.gz | tar -xf -
fusermount -u /tmp/server1
ssh
server2?