Faça o seguinte e funciona
~$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...
redirecionar a saída para um arquivo e eu entendo isso?
~$ whatis `ls /bin` > blah
kmod: nothing appropriate.
ntfsck: nothing appropriate.
Responder1
>
apenas redireciona o padrão para fora ( stdout
), mas quando whatis
não consegue encontrar informações sobre um arquivo, ele as grava em um fluxo diferente, stderr
. Você também pode redirecionar isso com 2>
o identificador stderr
de arquivo 2. Você pode redirecionar stdout e stderr como &>
ou pode redirecionar stderr para stdout fazendo2>&1
Você pode ler tudo sobre redirecionamentoaqui
Então, no seu exemplo, se você quiser que todos os erros, bem como o sucesso, acabem, blah
você poderia fazer
whatis `ls /bin` &> blah
ou, usando a sintaxe alternativa do subshell preferida atualmente:
whatis $(ls /bin) &> blah
embora /bin
não seja provável que tenha um, tenha cuidado ao fazer coisas como esta. Os resultados de ls /bin
estarão sujeitos à divisão de palavras, portanto, se algum dos arquivos contiver, digamos, espaços, eles serão tratados como argumentos diferentes para whatis
. É por isso que você geralmente é desencorajado de analisar a saída de ls
(vejaessa questãopara uma discussão sobre isso)
você poderia fazer o que está tentando de forma diferente, como
find /bin -maxdepth 1 -type f -exec whatis {} + &> blah
que irá olhar /bin
e não se aprofundar (como o glob), então encontrará apenas os arquivos (o type f
argumento) e para cada coisa que encontrar será executado e whatis
, em seguida, fará o mesmo redirecionamento de que falamos.
Responder2
o que é pesquisa palavras-chave em um conjunto de arquivos de banco de dados contendo breves descrições de comandos do sistema e exibe o resultado na saída padrão. Somente correspondências completas de palavras são exibidas.
kmod: nada apropriado. há uma mensagem informando que não encontrou nada para o kmod.
se você deseja redirecionar toda a saída, tente isto.
whatis $(ls /bin) > /tmp/a.txt