如何覆盖别名命令中的选项?

如何覆盖别名命令中的选项?

我有一个rm别名:

alias rm='rm -i'

-i当我想要删除大量文件并且不想确认每个删除时,如何覆盖该选项?

答案1

您可以通过转义或引用命令名称来抑制别名,例如,

\rm foo
"rm" foo

进一步阅读:

答案2

如果rm,稍后出现在命令行中,则-f覆盖它。-i

命令行上最后出现的选项都会生效,因此您可以alias rm='rm -i'使用 覆盖 just rm -f,它将扩展为rm -i -f.

例如

$ mkdir rmtest
$ cd rmtest
$ touch a b c d e f
$ alias rm='rm -i'
$ rm *
rm: remove regular empty file 'a'? n
rm: remove regular empty file 'b'? n
rm: remove regular empty file 'c'? n
rm: remove regular empty file 'd'? n
rm: remove regular empty file 'e'? n
rm: remove regular empty file 'f'? n
$ rm -f *
$ ls -l
total 0
$

rm -f -i当然,仍然会提示您删除每个文件。

(至少对于 GNU 来说是这样rm。尚未测试其他版本)。

相关内容