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

greycat, если вам хочется именно понять конвеер, то в такой последовательности, как вы задали, надо немного извратиться( почему - прекрасный вопрос для изучения конвеера :)
 pacman -Qdt | cut -f1 -d' ' | xargs pacman -Rp
Без cut будете получать ошибки, типа цель не найдена : номер версии ( еще один неплохой вопрос )
vasek
где [targets] по существу можно считать потоком ввода данных (stdin)
я не совсем с этим согласен. [targets] это аргумент(ы) командной строки. Поправьте, если ошибаюсь.
greycat
[targets] это
Имя пакета, к. устанавливается/удаляется без номера версии. При этом вывод команды pacman -Q идет в формате: имя пробел версия, а ввод pacman -R в формате: имя пробел имя пробел ... имя-версия - не проходит( ошибка: цели не найдены: имя-версия). Или используйте ключ -q для pacman, т.е. pacman -Qdtq в єтом случае выдается только имя и cut можно убрать:
pacman -Qdtq | xargs pacman -Rp
-p я добавляю для того, чтобы происходило не удаление, а вывод на экран. Или
pacman -R $( pacman -Qdtq)
Или по-старинке
pacman -R 'pacman -Qdtq'

ЗЫ.Да, єто аргументы командной строки, а пакмен не умеет их принимать через конвеер, вам об этом уже говорили.
eщё интересней:
xargs -a <(pacman -Qdtq) sudo pacman -R
greycat
я не совсем с этим согласен. [targets] это аргумент(ы) командной строки. Поправьте, если ошибаюсь.
Конечно, это аргументы, но ... можно это считать и входом для команды, точнее входными данными (входным потоком) и выходит что это ... stdin ???
Нет смысла подробно описывать, посмотри это и на всякий случай это

PS - не обращай внимания на плохой язык в 1-ой ссылке, это просто автоперевод одной статьи
Ошибки не исчезают с опытом - они просто умнеют
greycat
Если бы pacman ожидал что-либо из стандартного потока ввода, он бы не продолжил свою работу, не встретив \n.
Это откуда такая уверенность? Все зависит от того, как организовано чтение из потока и какое событие вызывает закрытие потока. Например, команда:
md5sum -
будет ждать символа eof (ctl+d), а команда:
less -
Вообще не остановит чтение, пока вы ее не прервете (ctl+c).
anode
Да, єто аргументы командной строки, а пакмен не умеет их принимать через конвеер, вам об этом уже говорили.
У меня как-то сумел:
echo "wifi" | pacman -Ss -
heider, так тогда же все єлементарно:
pacman -Qdtq | pacman -R -
;P)
Я же писал
4. [targets] пустая строка - ввод данных пустой (в случае пустого вывода pacman -Qdt, используемого как входной поток в команде pacman -Qdt | sudo pacman -Rsn -) - обработка закончится ошибкой
error: argument '-' specified with empty stdin
Возможно зря указал "закончится ошибкой" - имел ввиду, что в выводе pacman -Qdt просто пустая строка, но если строка в выводе pacman -Qdt не пустая, то команда pacman -Qdt | sudo pacman -Rsn - отработает как нужно

PS - вообщем как всегда плохо изложил свою мысль

EDIT 1 - правда, не помню вывод этой команды (в строчку или в столбец?). Если в столбец, то потребуется дополнительная операция - конвертация в строку.
конечно же в строку, если работает pacman -Rns $(pacman -Qtdq) .......... старый хрен становится все более невнимательным
Ошибки не исчезают с опытом - они просто умнеют
vasek, в столбец ;)
 
Зарегистрироваться или войдите чтобы оставить сообщение.