Что означают точки на пути? [duplicate]

> перенаправляет только стандартный вывод ( stdout ), но когда whatis не может найти информация о файле записывается в другой поток, stderr . Вы также можете перенаправить это с помощью 2> , поскольку stderr является дескриптором файла 2. Вы можете перенаправить как stdout, так и stderr, например &> , либо вы можете перенаправить stderr на stdout, выполнив 2> & 1

Вы можете прочитать все о перенаправлении здесь

Итак, в вашем примере, если вы хотите, чтобы все ошибки, а также успех, заканчивались на бла вы можете использовать

whatis `ls /bin` &> blah

или, используя альтернативный синтаксис подоболочки, который предпочитается в наши дни:

whatis $(ls /bin) &> blah

хотя / bin вряд ли будет иметь его, будьте осторожны, делая подобные вещи. Результаты ls / bin будут подвергаться разделению на слова, поэтому, если какой-либо из файлов содержит, скажем, пробелы, они будут рассматриваться как разные аргументы для whatis . Вот почему вам обычно не рекомендуется анализировать вывод ls (см. этот вопрос для его обсуждения)

, вы можете делать то, что вы пытаетесь, иначе, например

find /bin -maxdepth 1 -type f -exec whatis {} + &> blah

, который будет искать в / bin и не углубляться (как глобус), затем найдет только файлы (аргумент тип f ) и для каждой найденной вещи он выполнит whatis , затем выполните то же перенаправление, о котором мы говорили.

10
14.12.2015, 02:09
0 ответов

Теги

Похожие вопросы