Как работает эта команда оболочки?

Как работает эта команда оболочки?

Следующая команда помещает содержимое локального файла id_rsa.pubв authorized_keysфайл на хосте.

Но я не совсем понимаю, как catи |работают вместе для достижения этой цели. Может кто-нибудь объяснить?

cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'

решение1

Команда catвыводит содержимое файла .ssh/id_rsa.pub; |(канал) получает этот текстовый вывод, а затем отправляет (т.е. передает по конвейеру) текст в ssh.

Затем sshиспользует этот текст в качестве входных данных для cat >> .ssh/authorized_keysкоманды.

решение2

Для catкоманды, если имя файла не указано, оно берется из stdin. В этом случае это вывод |.

Связанный контент