Atualmente, estou procurando maneiras de suprimir o comando de erro no Linux, em particular, o comando cp
.
Eu faço:
root@ubuntu:~$ cp /srv/ftp/201*/wha*/*.jj ~/.
cp: cannot stat `/srv/ftp/201*/wha*/*.jj': No such file or directory
Como suprimo a mensagem de erro impressa na tela? Ou seja, não quero ver essa mensagem de erro no meu monitor.
Respostas:
Para suprimir a saída de erro
bash
, anexe2>/dev/null
no final do seu comando. Isso redireciona o manipulador de arquivos 2 (STDERR) para/dev/null
. Existem construções semelhantes em outras conchas, embora a construção específica possa variar um pouco.fonte
Redirecione a mensagem de erro (STDERR) para
/dev/null
:Exemplo:
fonte
Sua pergunta não está clara. A coisa mais sensata a fazer seria não executar
cp
quando o curinga não corresponder a nenhum arquivo, em vez de executarcp
e ocultar a mensagem de erro.Para fazer isso, se o shell for bash, defina a
nullglob
opção para que o padrão curinga se expanda para nada se não corresponder a nenhum arquivo. Em seguida, verifique se o padrão se expandiu para algo e não chamecp
nesse caso.No sh simples, teste se o globo foi deixado inalterado, apontando para um arquivo inexistente.
fonte
Adicione isso em ~ / .bashrc:
então:
fonte
stderr
para/dev/null
quando a saída de erro é indesejada. Ou usando um nome diferente decp
.cp
.você pode usar:
1 opção:
2>/dev/null
.2 opção:
2>&1
Além de você poder usá-lo no final do seu comando, suprimirá as mensagens de erro:
Exemplo aqui-
aqui você não pode recuperar nenhuma informação sobre a mensagem de erro. Ex2:
aqui você pode recuperar algumas informações do arquivo de log abaixo:
fonte