{"id":307,"date":"2017-01-02T03:41:06","date_gmt":"2017-01-01T19:41:06","guid":{"rendered":"http:\/\/vinta.ws\/code\/?p=307"},"modified":"2026-03-17T01:17:26","modified_gmt":"2026-03-16T17:17:26","slug":"redirect-stderr-to-stdout-or-a-file","status":"publish","type":"post","link":"https:\/\/vinta.ws\/code\/redirect-stderr-to-stdout-or-a-file.html","title":{"rendered":"Redirect Console Output: stdout and stderr"},"content":{"rendered":"<p>File descriptors:<\/p>\n<ul>\n<li><code>0<\/code>: stdin<\/li>\n<li><code>1<\/code>: stdout<\/li>\n<li><code>2<\/code>: stderr<\/li>\n<\/ul>\n<pre class=\"line-numbers\"><code class=\"language-console\"># redirect stdout to a file <code>test.log<\/code>\n$ strace uptime &gt; test.log\n$ strace uptime 1&gt; test.log\n\n# redirect stderr to a file <code>test.log<\/code>\n$ strace uptime 2&gt; test.log\n\n# redirect stderr to stdout\n# &amp;1 references the value of the file descriptor 1 (stdout)\n$ sh \/home\/vinta\/do_shit.sh &gt; \/tmp\/do_shit.log 2&gt;&amp;1\n\n# <code>2&gt; 1<\/code> actually means that you redirect stderr to a file named <code>1<\/code>\n$ sh \/home\/vinta\/do_shit.sh &gt; \/tmp\/do_shit.log 2&gt; 1\n$ cat 1\n\n# redirect both stderr and stdout to file <code>test.log<\/code>\n$ strace uptime &amp;&gt; test.log\n\n# run a command in background\n$ long-running-command &amp;<\/code><\/pre>\n<p>ref:<br \/>\n<a href=\"http:\/\/tldp.org\/HOWTO\/Bash-Prog-Intro-HOWTO-3.html\">http:\/\/tldp.org\/HOWTO\/Bash-Prog-Intro-HOWTO-3.html<\/a><br \/>\n<a href=\"https:\/\/www.cyberciti.biz\/faq\/redirecting-stderr-to-stdout\/\">https:\/\/www.cyberciti.biz\/faq\/redirecting-stderr-to-stdout\/<\/a><br \/>\n<a href=\"https:\/\/www.brianstorti.com\/understanding-shell-script-idiom-redirect\/\">https:\/\/www.brianstorti.com\/understanding-shell-script-idiom-redirect\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>0: stdin<br \/>\n1: stdout<br \/>\n2: stderr<\/p>\n","protected":false},"author":1,"featured_media":308,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[101,74],"class_list":["post-307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-about-devops","tag-cli-tool","tag-linux"],"_links":{"self":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/comments?post=307"}],"version-history":[{"count":0,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media\/308"}],"wp:attachment":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media?parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/categories?post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/tags?post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}