In a directory containing several files, you type `echo *` and get a list of file names rather than an asterisk. Which command prints a single literal asterisk instead?

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

Not correct echo $*

Wrong. $* is the positional parameters of the current shell or script joined together. In an interactive shell with no positional parameters it expands to nothing, so you get an empty line.

Correct echo "*"

Correct. Pathname expansion is one of the things double quotes suppress, so the shell hands echo the single character * and echo prints it.

Not correct echo -e *

Wrong. -e only makes echo interpret backslash escapes in its arguments. The glob is expanded by the shell before echo ever runs, so the file names still appear.

Not correct echo -n *

Wrong. -n suppresses the trailing newline; the expanded file names are still printed, just without the final line break.

Why

Globbing is done by the shell, not by the command, and it happens before the command is executed — which is why no option of echo can undo it. Quoting is the control: single quotes, double quotes and a backslash all stop pathname expansion. Double quotes still permit parameter expansion and command substitution, which is why they leave $* free to expand but not *.

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