Rm çağrılarını durdurmanın ve dosyaları kalıcı olarak silmek yerine, onları çöp kutusuna taşımak yerine bir yolu var mı?
Rm çağrılarını durdurmanın ve dosyaları kalıcı olarak silmek yerine, onları çöp kutusuna taşımak yerine bir yolu var mı?
Yanıtlar:
Bunun için webupd8.org'da bir tarif var . Bağlantı çürümesini önlemek için, önemli bilgiler (birkaç ekleme ile).
sudo apt-get install trash-cli
Bu kuracak trash, empty-trash, list-trashve restore-trashonu olduğu gibi kullanımı veya yapabilirsiniz komutlar, rmbir diğer ad trash(aşağıya bakınız).
trashKomutun semantiği standarttan biraz farklıdır rm- -rdizinleri silebilmek için bayrak gerektirmez . Bu sizi rahatsız ediyorsa, webupd8.org, PATH'inize koyabileceğiniz ve onu çağırabileceğiniz aşağıdaki komut dosyasını önerir 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 ve üstü, senaryoda geçen komut olmalıdır trash-put "${cmd[@]}"yerine trash "${cmd[@]}"(komut dönüşmesiyle trashiçin trash-put).
Ardından komut dosyasını yürütülebilir yapın:
chmod +x trash-rm
Bir dizinde bulunduğunuzda PATH, ~ / .bashrc dosyanıza gerçek rmkomut yerine komut dosyanızı çağırmak için bash yapacak bir diğer ad ekleyin :
alias rm="trash-rm"
Djeikyb doğru şekilde işaret ettiği gibi, .bashrc takma adı yalnızca .bashrc değiştirilmiş olan kullanıcı için ve yalnızca bash terminal oturumunda çalışır.
Ve bu olmalı.
alias="trash"). Senaryoya sahip olmanın avantajını biliyor musunuz?
trashdaha çok davranmaktır rm. Bu, rmörneğin çalıştığı gibi bekleyen bazı komut dosyaları için önemli olabilir . Cevabı güncelledim.
libtrash (Ubuntu'daki libtrash paketi) bunu yapıyor gibi görünüyor, ama hiç kullanmadım.