использование конвейера

Здравствуйте.Пытаюсь оптимизировать свою работу используя конвейер.Запускаю команду:
pacman -Qdt | sudo pacman -R
Но это не работает
error: no targets specified (use -h for help)
Вообще пытаюсь удалить неиспользуемые зависимости
https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Removing_unused_packages_(orphans)
я не совсем понимаю эту конструкцию
pacman -Rns $(pacman -Qtdq)
Мне не важно готовое решение, просто хочу лучше понять конвейеры.Так почему же мой пример не сработал?
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html
Суть пайпа - передача stdout предыдущей команды в stdin следующей. Команда pacman не принимает такой stdin, но есть другие способы передать аргумент. В данном случае
pacman -Qdt | sudo pacman -R
тоже самое, что
ls | echo
почему некоторые команды принимают в stdin данные, а некоторые нет?
Man bash вместо тысячи слов.
greycat
почему некоторые команды принимают в stdin данные, а некоторые нет?
Если вы напишете два скрипта, один из которых будет принимать на вход stdin, а другой не будет, сделаете файлы исполняемыми и разместите где-нибудь в /usr/bin, то получите две команды, одна из которых принимает stdin, а другая нет. И этот вопрос можно будет задать уже вам.
xargs нужен
greycat
я не совсем понимаю эту конструкцию
pacman -Rns $(pacman -Qtdq)
Мне не важно готовое решение, просто хочу лучше понять конвейеры.Так почему же мой пример не сработал?
https://disnetern.ru/wp-content/uploads/2016/11/Advanced-Bash-Scripting-Guide.pdf
greycat
почему некоторые команды принимают в stdin данные, а некоторые нет?
Потому что команды это программы, а программист может предусмотреть чтение стандартного входа, а может нет.
Часто, если предполагается чтение аргументов со стандартного входа, в качестве аргумента указывается "-":
$ man pacman
... if stdin is not from a terminal and a single hyphen (-) is passed as an argument, targets will be read from stdin
Т.е. pacman тоже умеет читать стандартный вход и эти две команды эквивалентны:
pacman -Qdtq | pacman -Rsn -
pacman -Rsn $(pacman -Qdtq)
 
Зарегистрироваться или войдите чтобы оставить сообщение.