Я хотел быть умным и сравнивать удаленный файл с локальным файлом без предварительной загрузки его вручную. Я могу получить содержимое удаленного файла
ssh user@remote-host "cat path/file.name"
Тем не менее, трубопровод, который к diff
ssh user@remote-host "cat path/file.name" | diff path/file.name
дает мне это:
diff: missing operand after `path/file.nae'
diff: Try `diff --help' for more information.
У меня настроены ключи ssh, поэтому он не запрашивает пароль. Какой обходной путь для этого?
command-line
pipe
diff
user394
источник
источник
-
), вы можете использовать/dev/stdin
. напримерdiff file1 /dev/stdin
Ответы:
Попробуйте использовать
-
для представления стандартного ввода.ssh user@remote-host "cat path/file.name" | diff path/file.name -
источник
Вот один из обходных путей:
diff
кажется, принимает <( expr ) в качестве аргумента:источник
/dev/fd
:diff
видит что-то вроде/dev/fd/3
в своей командной строке).diff -y <(xmllint --format "${1}") <(xmllint --format "${2}")
который я сейчас использую все время.diff <(plutil -convert xml1 -o -- "${1}") <(plutil -convert xml1 -o - -- "${2}")
Трубить в diff равносильно бегу
diff path/file.name
а затем, как только он запустится, введите все содержимое файла.
Как видите, это не то, что вы ожидали.
источник
источник
StrictHostKeyChecking=no
? В противном случае хороший ответ.