Your shell has alias rm='rm -i' in effect. For one file you want the external rm to run without the interactive prompt, while leaving the alias defined for later commands. Which command line does that?
LPIC-1 Exam 102-500, objective 105. Shells and shell scripting easy
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 \rm report.txt
Correct. Quoting any character of the word suppresses alias expansion for that word, so the shell resolves rm through PATH and the alias definition stays untouched.
Not correct unalias rm; rm report.txt
Wrong for the requirement. It works, but it deletes the alias definition, so subsequent rm commands lose the safety prompt the site put there.
Not correct shopt -u expand_aliases; rm report.txt
Wrong for the requirement. It turns alias expansion off for the whole shell, so every alias stops working, not just this one; and because aliases are expanded when a line is read, the rm written after it on the same line has already been expanded and still prompts.
Not correct alias rm; rm report.txt
Wrong. alias with a single name and no equals sign only prints the current definition. The second command still expands to rm -i and still prompts.
Why
Alias expansion applies only to an unquoted first word, so \rm, 'rm' and "rm" all reach the real command. The other standard bypass is command rm, which additionally skips any shell function of the same name while still using PATH. Both are preferable to unalias, because they are local to the one command line.
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 105 and space the ones you get wrong.
More questions on this objective
- A user logs in at a text console, and bash starts as an interactive login shell. Which file in that user's home directory is read by bash itself as part of login startup? machine-checked
- You are already logged in to a graphical desktop and open a new terminal window, so bash starts as an interactive shell that is not a login shell. Which per-user file does bash read in that case? machine-checked
- An executable script contains only the line `export EDITOR=vim`. After running it as `./setenv.sh`, `echo $EDITOR` in the calling shell prints nothing. What explains this? machine-checked
- In bash, what is the effect of `export MYVAR`? machine-checked
- At a bash prompt you run `alias ll='ls -l'` and it works for the rest of that session, but a terminal window opened afterwards does not recognise `ll`. Which statement explains this and gives the standard remedy? machine-checked
- A command finishes and the shell reports an exit status of 0. What does that mean, and which parameter reports it? machine-checked