Используя трубу посылает выходной сигнал (стандартный вывод) первой команды, чтобы стандартного ввода (вход) ребенка процесса (2-й команды). Приведенные вами команды не принимают никакого значения на stdin
. Это будет работать, например, с cat
(и работой, я имею в виду работу как cat
работать без аргументов, а просто пройти вдоль входа вы даете ему):
ls | cat
Для приложений, это где xargs
входит. Он принимает входной канал и передает его в качестве аргументов указанной команде. Таким образом, вы можете заставить его работать, как:
ls | xargs du -sb
Учтите, что по умолчанию xargs
нарушит свой вклад в пространствах, поэтому, если ваши имена файлов содержат пробелы, это не будет работать, как вы хотите. Таким образом, в данном конкретном случае, это было бы лучше:
du -sb *
что делает дю -sb * означает, ? – Romeno
'*' является glob (или подстановочный знак, как вы можете это знать). Оболочка заменит его всеми именами файлов (или каталогами и т. Д.) В текущем каталоге, который соответствует ему. Y также может, например, сказать '* .jpg', чтобы соответствовать любому файлу, заканчивающемуся .jpg – FatalError