it-swarm-vi.com

Không thể ống vào diff?

Tôi muốn thông minh và so sánh một tệp từ xa với một tệp cục bộ mà không cần tải xuống thủ công trước. Tôi có thể lấy nội dung của tệp từ xa

ssh [email protected] "cat path/file.name"

Tuy nhiên, đường ống dẫn đến diff

ssh [email protected] "cat path/file.name" | diff path/file.name

đưa tôi cái này:

diff: missing operand after `path/file.nae'
diff: Try `diff --help' for more information.

Tôi đã thiết lập các khóa ssh, vì vậy nó không nhắc tôi nhập mật khẩu. Cách giải quyết cho việc này là gì?

81
user394

Thử sử dụng - để thể hiện đầu vào tiêu chuẩn.

ssh [email protected] "cat path/file.name" | diff path/file.name -

99
Hemant

Đây là một cách giải quyết: diff dường như chấp nhận <(expr) dưới dạng đối số:

diff <(ssh \"cat path/file.name/") <(cat path/file.name)
68
user394

Đường ống vào diff tương đương với chạy

diff path/file.name

và sau đó, khi nó chạy, gõ toàn bộ nội dung của tệp.

Như bạn thấy, đó không phải là điều bạn mong đợi.

4
Macha
diff /tmp/localtempfile <(ssh -A -o StrictHostKeyChecking=no [email protected] "cat /tmp/remotetempfile")
1
Vlad