Команда whatis Ошибки перенаправления вывода

Команда whatis Ошибки перенаправления вывода

Сделайте следующее и это сработает

~$whatis `ls /bin`
stty (1)             - change and print terminal line settings

stty (2)             - unimplemented system calls

su (1)               - change user ID or become superuser

etc...

перенаправляю вывод в файл и получаю это?

~$ whatis `ls /bin` > blah

kmod: nothing appropriate.

ntfsck: nothing appropriate.

решение1

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

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

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

whatis `ls /bin` &> blah

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

whatis $(ls /bin) &> blah

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

Вы могли бы сделать то, что вы пытаетесь сделать по-другому, например

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

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

решение2

что ищет набор файлов базы данных, содержащих краткие описания системных команд, по ключевым словам и выводит результат на стандартный вывод. Отображаются только полные совпадения слов.

kmod: ничего подходящего. это сообщение говорит о том, что для kmod ничего не найдено.

если вы хотите перенаправить весь вывод, то попробуйте это..

whatis $(ls /bin) > /tmp/a.txt

Связанный контент