Interview Scripting (Bash, Groovy)

What does 2>&1 mean, and how do you redirect both stdout and stderr? [Intermediate]

Answer

2>&1 means redirect stderr, file descriptor 2, to wherever stdout, file descriptor 1, currently points. To redirect both stdout and stderr to the same file, use command >file 2>&1 or command &>file in Bash.

Technical explanation

Redirection order matters because 2>&1 copies the current destination of stdout at that point.

command >file 2>&1 sends both streams to file; command 2>&1 >file sends stderr to the original stdout and only stdout to file.

For pipelines, use pipefail if you need upstream failures to affect the pipeline status.

Hands-on example

# Correct: both stdout and stderr to deploy.log

./deploy.sh > deploy.log 2>&1

# Bash shorthand:

./deploy.sh &> deploy.log

# Append both:

./deploy.sh >> deploy.log 2>&1

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Scripting (Bash, Groovy) interview questions

← All Scripting (Bash, Groovy) questions