C'est pourquoi wget utilise stderr pour certaines de ses sorties. Le second devrait fonctionner.
theotherreceive
2
Incidemment, vous voudrez peut-être enregistrer cette sortie wget dans un fichier journal. Ainsi, lorsque / si votre téléchargement ne fonctionne plus, vous pouvez comprendre pourquoi. Si c'est dans un script quand même. Si c'est un type ponctuel, alors oui, à la poubelle
Matt Simmons
1
Car wgetvous pouvez utiliser les -qoptions pour le rendre silencieux.
pkhamre
Un moyen de supprimer la sortie écrite directement dans / dev / tty?
d11wtq
30
Trois périphériques IO sont disponibles sur la ligne de commande.
standard in - 0
standard out - 1
standard error - 2
Pour rediriger la sortie standard (sortie par défaut) vers un fichier (et écraser le fichier), utilisez
command > file.log
Pour ajouter à file.log, utilisez 2> s
command >> file.log
pour rediriger l'erreur standard vers le fichier.log, utilisez
command 2> file.log
et annexer
command 2>> file.log
Pour combiner les sorties dans un flux et les envoyer au même endroit
command > file.log 2>&1
Cela envoie 2 (stderr) dans 1 (stdout) et envoie stdout à file.log
Notez qu'il est également possible de rediriger standard dans une commande qui attend stdin
Quelqu'un peut-il expliquer comment ça command > file.log 2>&1marche?
Cory Klein
A quel niveau voudriez-vous savoir?
Matt Simmons
3
@nomoreink: il s'agit en fait de 2 commandes, une > fileet la seconde 2>&1. Le premier redirige la norme vers un fichier. Le second prend le 2ème descripteur de fichier et le redirige vers le premier. Vous pouvez faire l'inverse, rediriger la sortie standard vers l'erreur standard à l'aide de >&2, puis rediriger l'erreur standard vers un fichier avec 2> file.
Hubert Kario
12
Cacher stdout
./command >/dev/null
Cacher stdoutetstderr
./command >/dev/null 2>&1
Masquer stdoutet stderrrelâcher le terminal (exécuter la commande en arrière-plan)
Cela redirigera la sortie vers un fichier nommé null
theotherreceive, le
Il a généré un fichier null
Jader Dias
1
vous n'auriez pas voulu dire / dev / null, n'est-ce pas?
Babu
1
Oui, j'aurais, Babu. Je voulais dire $ commande &> / dev / null. Mes excuses pour avoir tapé trop vite pour mon propre bien.
Lucho
2
Pour Mac OS X (10.6 "Snow Leopard"):
Si vous devez masquer la sortie sans que le programme le sache en vérifiant le descripteur de fichier de sortie / d'erreur, vous pouvez utiliser les éléments suivants dans un shell:
stty flusho; command ;stty -flusho
ou si vous voulez juste cacher l'entrée du terminal à propos:
stty -echo; command ;stty echo
Voir la page de manuel stty (1) pour plus d'informations.
Pour Linux, tout ce que je sais, c’est qu’Ubunutu (10.04 "Lucid") et des "Debian / Arch" (commentés ci-dessous - tnx hendry) n’ont pas le flushoparamètre (et je ne vois rien d’autre dans la page de manuel). . Le echoréglage fonctionne de toute façon sur Ubuntu.
Réponses:
Vous pouvez rediriger la sortie de n’importe quel programme afin qu’elle ne soit pas vue.
Cela redirigera la sortie standard - vous verrez toujours des erreurs
Cela redirigera toutes les sorties, y compris les erreurs.
la source
wget
vous pouvez utiliser les-q
options pour le rendre silencieux.Trois périphériques IO sont disponibles sur la ligne de commande.
Pour rediriger la sortie standard (sortie par défaut) vers un fichier (et écraser le fichier), utilisez
Pour ajouter à file.log, utilisez 2> s
pour rediriger l'erreur standard vers le fichier.log, utilisez
et annexer
Pour combiner les sorties dans un flux et les envoyer au même endroit
Cela envoie 2 (stderr) dans 1 (stdout) et envoie stdout à file.log
Notez qu'il est également possible de rediriger standard dans une commande qui attend stdin
EDIT
Pour plus de détails, consultez le Advanced Bash Scripting Guide
la source
command > file.log 2>&1
marche?> file
et la seconde2>&1
. Le premier redirige la norme vers un fichier. Le second prend le 2ème descripteur de fichier et le redirige vers le premier. Vous pouvez faire l'inverse, rediriger la sortie standard vers l'erreur standard à l'aide de>&2
, puis rediriger l'erreur standard vers un fichier avec2> file
.Cacher
stdout
Cacher
stdout
etstderr
Masquer
stdout
etstderr
relâcher le terminal (exécuter la commande en arrière-plan)la source
Si vous souhaitez simplement masquer la sortie (et non l'enregistrer dans un fichier), vous pouvez utiliser:
Édité:
$ commande &> / dev / null
la source
Pour Mac OS X (10.6 "Snow Leopard"):
Si vous devez masquer la sortie sans que le programme le sache en vérifiant le descripteur de fichier de sortie / d'erreur, vous pouvez utiliser les éléments suivants dans un shell:
ou si vous voulez juste cacher l'entrée du terminal à propos:
Voir la page de manuel stty (1) pour plus d'informations.
Pour Linux, tout ce que je sais, c’est qu’Ubunutu (10.04 "Lucid") et des "Debian / Arch" (commentés ci-dessous - tnx hendry) n’ont pas le
flusho
paramètre (et je ne vois rien d’autre dans la page de manuel). . Leecho
réglage fonctionne de toute façon sur Ubuntu.la source