Я боролся с этой проблемой некоторое время и буду очень признателен, если кто-то сможет прояснить ее для меня. Предположим, я пытаюсь соединить две команды вместе. readlink
и cat
readlink Command output
$ readlink -f SUService.log
/cygdrive/c/SUService.log
Теперь, если я попробую что-то подобное
$ readlink -f SUService.log | cat
Пока как то так будет работать
$ readlink -f SUService.log | xargs cat
Я хотел знать, почему это так? Я прочитал этот пост здесь, в котором у ОП был похожий вопрос, и этот пост, который пытается объяснить разницу между аргументом и входными данными, однако я все еще не мог обернуть голову вокруг принятых ответов. Насколько я понимаю, readlink
возвращает результат в stdout, который является экраном терминала, в то время как cat
хочет ввод в качестве аргумента. Это, в свою очередь, побуждает меня спросить, как узнать, может ли вывод команды (такой как locate или readlink) работать в качестве аргумента или нет для следующей команды? Я больше читаю, и получается, что я хотел бы знать, когда мне следует использовать команду xarg?