The shell has been started with `set -o noclobber`. The command `sort names.txt > sorted.txt` now fails, reporting that it cannot overwrite the existing file. Which command replaces the contents of sorted.txt without switching the option off?

LPIC-1 Exam 101-500, objective 103. GNU and Unix commands hard

Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.

Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.

How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.

The options

Correct sort names.txt >| sorted.txt

Correct. >| is the explicit override for noclobber: it truncates and writes the existing file for this one redirection while the option stays in force.

Not correct sort names.txt 1> sorted.txt

Wrong. 1> only spells out the descriptor number that > implies; noclobber refuses it in exactly the same way.

Not correct sort names.txt >> sorted.txt

Wrong for this requirement. Appending is permitted under noclobber, but the old contents remain and the sorted list is added after them rather than replacing them.

Not correct sort names.txt 2> sorted.txt

Wrong twice over. It would write the error stream rather than the sorted output, and noclobber blocks a truncating redirection of descriptor 2 just as it blocks one of descriptor 1.

Why

noclobber, also settable as `set -C`, makes the shell refuse any plain > redirection whose target already exists as a regular file, which protects against destroying a file by typing > where >> was meant. The option is a property of the shell performing the redirection, not of the file, so it never affects a program that opens the file itself, such as tee. `set +o noclobber` (or `set +C`) turns it off again.

Where this comes from

Cited
manual page bash(1)

Practise this

Reading one question is not practice. The trainer will draw a short set from objective 103 and space the ones you get wrong.

Practise LPIC-1 Exam 101-500

More questions on this objective

All questions on GNU and Unix commands

Practise LPIC-1 Exam 101-500