In a cleanup script the line `grep -l OBSOLETE *.conf | xargs rm --` occasionally fails with `rm: missing operand`, because grep matches nothing and GNU xargs runs rm once anyway with no file names. Which GNU xargs option stops the command from being run at all when the input is empty?

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

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 -r

Correct. -r, long form --no-run-if-empty, suppresses the command entirely if standard input contains nothing but whitespace. Without it, GNU xargs runs the command once with no added arguments.

Not correct -t

Wrong. -t (--verbose) prints each command line to standard error just before running it. It makes the problem visible rather than preventing it.

Not correct -p

Wrong. -p (--interactive) prompts for confirmation before each command line. An operator could refuse the empty run, but the script would then hang waiting for input.

Not correct -x

Wrong. -x (--exit) makes xargs exit if a command line would exceed the size limit set with -s. It has nothing to do with empty input.

Why

GNU xargs runs the command at least once even when it reads no items, which is why pipelines that feed it a possibly empty list need -r. The behaviour is not universal: the BSD implementation does not run the command on empty input, and there -r is accepted only for compatibility. Combine -r with -0 when the producing command supports NUL-separated output.

Where this comes from

Cited
manual page xargs(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