rmのエイリアスを解除して、Zshの関数にすることはできません

StackOverflow https://stackoverflow.com/questions/800657

  •  03-07-2019
  •  | 
  •  

質問

.zshrcで実行に失敗しました

unalias rm  
rm() { mv $* /tmp/wastebasket }

起動時に取得

/Users/Masi/.zshrc:unalias:34: no such hash table element: rm

ハッシュテーブルの問題は Ubuntu を実行してください。 バグがMacおよび rm -commandにも当てはまるかどうかはわかりません。

起動時に通知を受け取るにはどうすればよいですか

役に立ちましたか?

解決

他の誰もがあなたが単にエイリアスを持っていなかったというのは正しいことです。さらに重要なこと:

しないでください。いつの日か、POSIX標準に準拠した別のPOSIXマシン(「リサイクル」なしで削除)になり、何気なく削除して元に戻す方法がなくなります。 rm規律を今すぐ学びましょう。

他のヒント

このエラーメッセージは、 rm のエイリアスを解除しようとしており、そのようなエイリアスがないためです。

エラーなしで複数回エイリアスを作成できるため、コードを次のように変更します。

alias rm=x
unalias rm  
rm() { mv $* /tmp/wastebasket }

これにより、エイリアスを解除する前に、エイリアスとして rm が存在することが保証されます。

zshにはあまり詳しくありませんが、おそらくrmはエイリアスではなく、実際には/ binにある標準ユーティリティであるためです。

最初にエイリアスを解除せずに、以前のエイリアスを上書きせずにエイリアスを作成できます。

存在するエイリアスのみを削除してください。 すぐにエイリアスされていないエイリアスを作成すると、私は見苦しくなります。 rmがエイリアスであることをテストし、そうであればエイリアスを解除することをお勧めします。

 case $(type rm) in
     (*alias*) unalias rm;;
 esac

またはブルートフォースを使用し、stderrを無視します

 unalias rm 2>/dev/null
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top