有没有办法让Bash将STDOUT / STDERR重定向到文件,但仍然将它们打印到终端?
答案 0 :(得分:16)
这会将STDOUT和STDERR重定向到同一个文件:
some_command 2>&1 | tee file.log
$ touch foo; ls foo asfdsafsadf 2>&1 | tee file.log
ls: asfdsafsadf: No such file or directory
foo
$ cat file.log
ls: asfdsafsadf: No such file or directory
foo
答案 1 :(得分:3)
使用tee命令。
$ echo "hi" | tee output.txt
hi
[unix]$ ls
output.txt
[unix]$ cat output.txt
hi