まず、$ を使用しないでください。 エイリアスを呼び出すとき。 $ 変数を展開するためのものです (およびこの質問に特に関係のない他のいくつかのもの)。
しかし、第二に、エイリアスは機能します 変数に少し似ていますが、(少し単純化しすぎるリスクがありますが) 単語の集まりに展開されるだけです。あなたは myrm foo をしたいと言っています 、しかし、それは mv /home/user/Trash/* foo に展開されます 、意味がありません。
簡単な解決策は、エイリアスを mv -t /home/user/Trash に定義することです mv のため、これは機能します をサポート
mv -t destination_dir file …構文の代替として
mv file … destination_dir構文。
ただし、シェル関数を使用すると、柔軟性を高めることができます。これらは、スクリプトの柔軟性とエイリアスの (低い) オーバーヘッドを兼ね備えています。たとえば、
myrm() { mv "example@unixlinux.online" /home/user/Trash; }
myrm foo が発生します mv foo /home/user/Trash と解釈される .
おそらくより簡単な解決策は、 trash-cli を使用することです パッケージ。次に、 alias myrm=trash を実行できます そして trash foo あなたがしたいことを達成するために。 foo が ~/. local/share/Trash になることを除いて
問題は、 mv で mv source destination のように使用する必要があります .
あなたのエイリアスではその逆です mv destination source .
また、アスタリスク * は必要ありません 最後に、宛先をフォルダーとして処理するためです。フォルダー /home/user/Trash を確認してください mkdir /home/user/Trash で存在します .
エイリアスのアイデアを解決するには、このスタックオーバーフローの質問をご覧になることをお勧めします:
- https://stackoverflow.com/q/7131670/7311363
これはその解決策につながります。これを ~/.bashrc に追加してください source ~/.bashrc を実行します 追加後:
myrm() {
/bin/mv "example@unixlinux.online" /home/user/Trash/
}