rm
Kabuk globbing ile bir kerede birden fazla ürün bulduğumda ve desenin beklediğimden daha fazla genişlediği en ufak bir olasılık olsa bile, her zaman eklemeyi hatırlamaya çalışırım -i
, ancak (elbette) yararlı bir şeyi unutabilir ve yanlışlıkla uçurabilirim. Bazı insanlar bu sorunu bir takma adla çözmeye çalışırlar, alias rm='rm -i'
ancak rm'yi her zaman etkileşimli yapma fikrinden nefret ederim , çünkü o -f
zaman tüm amacı açık bir şekilde yenecek alışkanlığa gireceğim.
Yapmak istediğim rm
sadece -i
globbing kullandığımda kullanmak ve -f
tabii ki geçersiz kılmak için -i
, bu yüzden her zamanki gibi tüm dizinleri uçurabilirim rm -rf junk
.
Bu rm *blah*
yüzden gerçekten yazılır rm -i *blah*
ama rm blah
tam olarak yazıldığı gibi çalışır.
Bunun farklı kabuklarda nasıl başarılabileceği konusunda bir fark olması durumunda , sadece birini veya diğerini kapsayan cevaplar üzerine bash ve zsh için yöntemler sağlayan bir cevap seçeceğim .
Not : Aslında bunun iyi bir fikir olduğuna ikna olmadım; Sadece bunun mümkün olup olmadığını soruyorum. Bunun aptalca bir fikir olduğunu düşünüyorsanız, fikrinizin ardındaki mantığı duymaktan memnuniyet duyarım, ancak lütfen bu tür yorumları cevap alanına göndermeyin . Gerçek cevaplar ya bunu nasıl yapacağımı söyler ya da neden / neden mümkün olmadığını açıklar (ya da muhtemelen benzer bir sonuç almak için alternatif bir yöntem sunar). Ama bana bunun neden aptal olduğunu söylemek istiyorsanız, lütfen yorum olarak gönderin. Sonuca katılmıyorsam bile iyi gerekçeli yorumları iptal edeceğim.
noglob
örneğin rm'yi yumuşatmak noglob my-rm
ve sonra my-rm'yi bir glob olup olmadığını denetleyen, genişleten ve -i ileten bir komut dosyası olmaktan yararlanabilirsiniz. Emin değilim, zsh bilmiyorum.
myrm
ve bu komut dosyası gibi ne harika şeyler yapalım.
rm -I
gibi-i
üçten fazla dosya veya sadece tetikleyici-r
geçirilir. İçindebash
,Ctrl-x *
glob'u genişletmek ve kendiniz incelemek için klavye kısayolunu kullanın.