Odpowiedzi:
Jest na to przepis na webupd8.org . Aby zapobiec gniciu linków, oto ważna informacja (z kilkoma dodatkami).
sudo apt-get install trash-cli
Będzie to zainstalować trash
, empty-trash
, list-trash
i restore-trash
polecenia, które można użyć, jak jest lub czynią rm
alias trash
(patrz niżej).
Semantyka trash
polecenia jest nieco inna niż standardowa rm
- nie wymaga -r
flagi, aby móc usunąć katalogi. Jeśli Ci to przeszkadza, webupd8.org proponuje następujący skrypt, który możesz umieścić w swojej ŚCIEŻCE i wywołać 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[@]}"
W systemie Ubuntu 12.04 i nowszych ostatnia komenda w skrypcie powinna być trash-put "${cmd[@]}"
zamiast trash "${cmd[@]}"
(ponieważ komenda zmieniła się z trash
na trash-put
).
Następnie uczyń skrypt wykonywalnym:
chmod +x trash-rm
Gdy znajdziesz go w jakimś katalogu w swoim katalogu PATH
, dodaj do swojego ~ / .bashrc alias, który sprawi, że bash wywoła twój skrypt zamiast rzeczywistego rm
polecenia:
alias rm="trash-rm"
Jak słusznie wskazuje djeikyb, sztuczka aliasowa .bashrc działałaby tylko dla użytkownika, którego zmodyfikowano .bashrc, i tylko w sesji terminalu bash.
I to powinno być to.
alias="trash"
). Czy wiesz, jaka jest zaleta posiadania skryptu?
trash
zachowanie się podobnie rm
do usuwania katalogów. Może to być ważne na przykład w przypadku niektórych skryptów, które oczekują rm
działania w taki sposób. Zaktualizowałem odpowiedź.
Wydaje się, że libtrash (pakiet libtrash w Ubuntu) to robi, ale nigdy go nie używałem.