Я изучаю командную строку из книги Командная строка Linux, и у меня есть сомнения. Не должно ls -l $(which cp)
и which cp | ls -l
имеют одинаковый выход? Потому что я беру выходные данные из cp и передавая его ls -l
Но это не работает должным образом. which cp | ls -l
вместо этого отображает содержимое pwd
1
A
ответ
2
ls
все равно, что входит в стандартный ввод.
echo anything | ls -l
^^^
Поскольку вы не предоставили каталог в список, он будет список pwd
.
1
В первом случае ls
принимает результат в качестве аргумента, во втором он принимает его во входном потоке (stdin), который в этом случае игнорируется.
Вы можете конвертировать из входного потока аргументов с помощью xargs:
which cp | xargs ls -l