Почему делает find . | cat
работы (печатающий все имена файлов), но find . | file -i
не работает на показ всего типа пантомимы файлов?
не был должен это работать, так как существует вывод от find .
и вход от file -i
?
(Извините, если это - глупый вопрос, я - новичок, использующий удар, и я не мог бы найти другой вопрос, который мог объяснить это мне),
Для канала команда с правой стороны считывает данные в своем стандартном канале. Команда file
требует, чтобы файлы были аргументами командной строки, а не данными на stdin.
Это именно то, для чего предназначена команда xargs
: читать из stdin и предоставлять данные в качестве аргументов командной строки:
find . | xargs file -i
Или , используйте -f
опция для file
:
find . | file -i -f -
Прочтите справочные страницы для более подробной информации.