it-swarm-ru.tech

Не можете трубу в diff?

Я хотел быть умным и сравнивать удаленный файл с локальным файлом без предварительной загрузки его вручную. Я могу получить содержимое удаленного файла

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

Тем не менее, передать это diff

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

дает мне это:

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

У меня настроены ключи ssh, поэтому пароль не запрашивается. Какой обходной путь для этого?

81
user394

Попробуй использовать - для представления стандартного ввода.

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

99
Hemant

Вот один из обходных путей: diff, кажется, принимает <(expr) в качестве аргумента:

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

Трубить в diff равносильно бегу

diff path/file.name

а затем, как только он запустится, введите все содержимое файла.

Как видите, это не то, что вы ожидали.

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