Shell redirection in Unix/Linux: Which operator should you use to append the standard output to the end of an existing file instead of overwriting its current contents?
-
A> symbols
-
B>> symbols
-
C< symbols
-
D<< symbols
-
ENone of the above
Answer
Correct Answer: >> symbols
Explanation
Introduction / Context:Command-line redirection is fundamental in Unix and Linux. You frequently need to add new output to the end of a log or report without destroying what is already there. Distinguishing between overwrite and append operators prevents data loss and supports safe scripting.
Given Data / Assumptions:
- You are writing standard output to a file.
- You want to preserve the file’s existing content and add new output at the end.
- Standard POSIX shell syntax is assumed (sh, bash, zsh, etc.).
Concept / Approach:
The operator > sends standard output to a file and truncates it first. The operator >> appends standard output to the file, creating it if it does not exist. Operators like < and << read from files or here-documents and do not write to files.
Step-by-Step Solution:
Choose the append operator: use >> to add to the end of a file.Example: echo "line" >> report.txt appends “line”.Avoid > when preservation matters, because it truncates existing content.Do not use input redirection (<, <<) for writing; they serve different purposes.Verification / Alternative check:
Create a test file: echo "first" > demo.txt. Then append: echo "second" >> demo.txt. Display with cat demo.txt and confirm both lines appear, proving that >> appended rather than overwrote.
Why Other Options Are Wrong:
- > symbols: Overwrites (truncates) the file before writing.
- < symbols: Redirects file content to command input (stdin), not output to a file.
- << symbols: Starts a here-document for multi-line input; not used to append output.
- None of the above: Incorrect because >> is exactly the append operator.
Common Pitfalls:
Accidentally using > when you intended to append can destroy logs. For safety, some shells support noclobber to prevent overwrites, or you can use >> consistently for logs. Always test redirections on scratch files first.
Final Answer:
>> symbols