alias rm='rm -i'
私のファイルにあります~/.bashrc
(今知っていました)悪い習慣と考える一部)。
これを実行するときにエイリアスは考慮されないようですnice
。
bli@naples:~$ touch test
bli@naples:~$ rm test
rm: remove regular empty file 'test'? n
bli@naples:~$ nice rm test
bli@naples:~$
なぜこれが起こるのですか?
ベストアンサー1
デフォルトでは、nice
これは外部コマンドです。
$ command -v nice
/usr/bin/nice
これは、シェル機能であるエイリアスについて知らないことを意味します。
$ alias foo='echo hello'
$ foo
hello
$ nice foo
nice: foo: No such file or directory
ただし、シェルにはエイリアシングを許可する機能があります。返品より多くのエイリアスに拡張されました。拡張は空白で終わります。
$ alias nice='/usr/bin/nice '
最後のスペースを見つけることが重要です。
今...
$ nice foo
hello
$ command -v nice
alias nice='/usr/bin/nice '
シェルにエイリアス拡張を実行させるには、すべての外部コマンドをそのエイリアスでラップできます。