Ejecuto el siguiente comando:
pkg_add emacs-23.4,2.tbz 2> output.log
La salida todavía se muestra en la terminal. Cuando presiono ↑, me sale
pkg_add emacs-23.4,2.tbz 2 > output.log
con un espacio antes de la2
.
Originalmente no puse esto. lo intento
pkg_add emacs-23.4,2.tbz > output.log 2>&1
Nuevamente, cuando presiono ↑, se han agregado espacios .
¿Por qué me está pasando esto?
Estoy ejecutando csh en FreeBSD.
command-line
freebsd
io-redirection
csh
gadgetmo
fuente
fuente
sh
.pkg_add
en FreeBSD, así que supongo que esto es para el usuario raíz (/ bin / csh es el valor predeterminado para root en FreeBSD). En este caso se debe no cambiar la cáscara a / usr / local / bin / bash. / bin / sh es aceptable. También podría simplemente cambiar a otro shell después de iniciar sesión como root.No estoy seguro si está intentando ocultar STDERR o redirigirlo a STDOUT.
Para redirigir STDOUT a un archivo:
Para redirigir STDOUT y STDERR a un archivo:
Para redirigir STDOUT a un archivo y ocultar STDERR:
Para redirigir STDOUT a la consola y ocultar STDERR:
Para redirigir STDOUT a la consola y STDERR a un archivo:
Para redirigir STDOUT a un archivo y STDERR a un archivo:
EDITAR: La razón por la que esto funciona es que la acción en () ocurre primero; Ergo, si hemos redirigido STDOUT, entonces ya no estará disponible fuera de (). Esto nos deja solo con STDERR, y luego podemos redirigir eso según lo deseado.
fuente
Sé cómo hacerlo en Csh, pero usando 2 shells:
Tal manera permite redirigir solo stderr a file.txt, sin stdout, es decir, lo que quería.
fuente