Bash takma adınız iyi yazılmamış (tek tırnaklar iyi kullanılmamış). Bunun yerine şöyle olmalıdır:
alias rm~='find . -name "*~" -print0 | xargs -0 /bin/rm -f'
Şimdi, kişisel olarak boruların yararsız kullanımını sevmiyorum ve xargsbu yüzden takma adınız daha iyi yazılacaktı:
alias rm~='find . -name "*~" -type f -exec /bin/rm -fv -- {} +'
-type fSeçeneği yalnızca dosyaları (değil vb dizinleri, bağlantı,), bulmak amacıyla -vseçeneği rmayrıntılı (Ne 's silme dışarı baskılar) ettirilebilir şekilde. +Sonunda böylece findçalışır rmbulunan tüm dosyaları ile (yalnızca bir örneği yumurtlar rm, yerine dosya başına bir).
Şimdi man bash:
Neredeyse her amaç için takma adların yerini kabuk işlevleri alır.
Bir takma ad yerine, bir işlev kullanmak daha iyidir: takma adınızı .bash_aliasesdosyaya yorumlayın (yani, #bu satırın önüne bir koyun ) ve dosyaya .bashrcbu fonksiyonu koyun (dosyanın herhangi bir yerinde, sonunda iyi) :
rm~() {
find . -name "*~" -type f -exec /bin/rm -fv -- {} +
}
Ayrıca, diğer cevaplarda belirtildiği gibi, -deletebulmak için komutu kullanabilirsiniz. Bu durumda, rm~işleviniz şöyle olacaktır:
rm~() {
find . -name "*~" -type f -printf "Removing file %p\n" -delete
}
Aslında, --dry-runsadece sildiğini çıktılayacak bir argüman alacak olan harika bir işlev yapabilirsiniz :
rm~() {
case "$1" in
"--dry-run")
find . -name "*~" -type f -printf "[dry-run] Removing file %p\n"
;;
"")
find . -name "*~" -type f -printf "Removing file %p\n" -delete
;;
*)
echo "Unsupported option \`$1'. Did you mean --dry-run?"
;;
esac
}
Sonra şöyle kullanın:
rm~ --dry-run
yalnızca silinecek (ancak silinmeyecek) dosyaları göstermek için
rm~
bundan memnun olduğunuzda.
Uyarlayın ve ihtiyaçlarınıza göre genişletin!
Not. Değişikliklerin geçerli olması için yeni bir terminal açmanız gerekecek.