whatis command Erros de redirecionamento de saída

1

Faça o seguinte e funcione

~$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...

redireciona a saída para um arquivo e eu entendo isso?

~$ whatis 'ls /bin' > blah

kmod: nothing appropriate.

ntfsck: nothing appropriate.
    
por ssvegeta96 03.11.2016 / 08:40

2 respostas

1

> apenas redireciona a saída padrão ( stdout ), mas quando whatis não consegue encontrar informações sobre um arquivo, ele grava isso em um fluxo diferente, stderr . Você também pode redirecionar isso com 2> , pois stderr é o identificador de arquivo 2. Você pode redirecionar stdout e stderr como &> ou pode redirecionar stderr para stdout fazendo 2>&1

Você pode ler tudo sobre o redirecionamento aqui

Então, no seu exemplo, se você quiser que todos os erros, bem como o sucesso, acabem em blah , você pode fazer

whatis 'ls /bin' &> blah

ou, usando a sintaxe de subshell alternativa que é preferida atualmente:

whatis $(ls /bin) &> blah

Embora o /bin provavelmente não tenha um, tenha cuidado ao fazer coisas como essa. Os resultados de ls /bin estarão sujeitos à divisão de palavras, portanto, se algum arquivo contiver espaços, digamos, eles serão tratados como argumentos diferentes para whatis . É por isso que você é geralmente desencorajado a analisar a saída de ls (veja esta questão para uma discussão sobre isso)

você pode fazer o que você está tentando de maneira diferente, como

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

que vai olhar em /bin e não ir mais fundo (como o glob), em seguida, encontrar apenas arquivos (o argumento type f ) e para cada coisa que achar que vai executar whatis , então faça o mesmo redirecionamento tinha falado sobre.

    
por 03.11.2016 / 11:24
0

whatis pesquisa um conjunto de arquivos de banco de dados contendo pequenas descrições de comandos do sistema para palavras-chave e exibe o resultado no        saída padrão. Apenas as correspondências de palavras completas são exibidas.

kmod: nada apropriado. é uma mensagem que diz que não encontrou nada para o kmod.

se você quiser redirecionar toda a saída, tente isso ...

whatis $(ls /bin) > /tmp/a.txt
    
por 03.11.2016 / 09:24