回答:
このためのwebupd8.orgのレシピがあります。リンクの腐敗を防ぐために、重要な情報をいくつか紹介します。
sudo apt-get install trash-cli
このインストールされますtrash
、empty-trash
、list-trash
とrestore-trash
あなたはそのまま使用したりすることができますコマンドrm
のエイリアスは、trash
(下記参照します)。
trash
コマンドのセマンティクスは標準とは少し異なりますrm
- -r
ディレクトリを削除できるようにするためにフラグは必要ありません。これが気になる場合は、webupd8.orgが次のスクリプトを提案します。これをPATHに入れて呼び出すことができますtrash-rm
。
#!/bin/bash
# command name: trash-rm
shopt -s extglob
recursive=1
declare -a cmd
((i = 0))
for f in "$@"; do
case "$f" in
(-*([fiIv])r*([fiIv])|-*([fiIv])R*([fiIv]))
tmp="${f//[rR]/}"
if [ -n "$tmp" ]; then
#echo "\$tmp == $tmp"
cmd[$i]="$tmp"
((i++))
fi
recursive=0
;;
(--recursive) recursive=0
;;
(*)
if [ $recursive != 0 -a -d "$f" ]; then
echo "skipping directory: $f"
continue
else
cmd[$i]="$f"
((i++))
fi
;;
esac
done
trash "${cmd[@]}"
Ubuntu 12.04以降では、スクリプトの最後のコマンドtrash-put "${cmd[@]}"
はtrash "${cmd[@]}"
(コマンドがからtrash
に変更されたためtrash-put
)ではなく、にする必要があります。
次に、スクリプトを実行可能にします。
chmod +x trash-rm
のディレクトリに配置したらPATH
、〜/ .bashrcにエイリアスを追加します。これにより、bashが実際のrm
コマンドの代わりにスクリプトを呼び出すようになります。
alias rm="trash-rm"
djeikybが正しく指摘しているように、.bashrcエイリアストリックは、.bashrcが変更されたユーザーに対してのみ機能し、bashターミナルセッションでのみ機能します。
そして、それはそれであるはずです。
alias="trash"
です)。スクリプトを作成する利点は何ですか。
trash
より振る舞うようrm
にすることです。これrm
は、たとえば、動作することを期待する一部のスクリプトにとって重要になる場合があります。答えを更新しました。
libtrash(Ubuntuのlibtrashパッケージ)がこれを行うようですが、私はそれを使用したことがありません。