Zsh'de çift rm doğrulaması


16

Zsh içinde bir rm * yaptığımda, böyle bir şey elde:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

Önce zsh hepsini silmek istediğimden emin olup olmadığımı sorar ve sonra rm her dosya için sorar.

Zsh doğrulamasını nasıl alabilirim?


3
Kullanın rm -f ./*. Varsayılan rmolarak, dosyaya yazma izniniz yoksa hiçbir şey sormaz. Belki dealias rm='rm -i'
Stéphane Chazelas

Oh bu olmalı - Ben bir Vagrant kabuk içinden silmeyi çalışıyorum ve dosyaları dizüstü dosya sisteminde barındırılıyor. Teşekkürler
ardochhigh

2
Sadece bir not, zsh hala "rm -rf *" soruyor, bu ile devre dışı bırakılabilirsetopt rmstarsilent
Matt

Yanıtlar:


30

“Zsh: tüm dosyaları silmek istediğinizden emin olun” mesajı, özellikle glob genişletme öncesi veya öncesinde rmbir argümanla çağrılan bir komutun çağrılmasıyla tetiklenen bir zsh özelliğidir . Bunu ile kapatabilirsiniz .*something/*setopt rm_star_silent

“Rm: normal dosyayı kaldır” mesajı rmkomutun kendisinden gelir . Varsayılan olarak görünmez, yalnızca rmseçenekle çağrıldığında görünür -i. Bu mesajı istemiyorsanız, bu seçeneği geçmeyin. Olmadan bile -i, rmsalt okunur bir dosyayı silmeye çalışırsanız onay (farklı bir mesajla) ister; seçeneği onaylayarak bu onayı kaldırabilirsiniz -f.

-iKomut satırını geçmediğiniz için rm, muhtemelen bir takma addır rm -i(aynı zamanda bir işlev, standart olmayan bir sarıcı komutu veya farklı bir takma ad olabilir, ancak takma ad rm -iaçık olarak en mantıklıdır). Bazı varsayılan yapılandırmalar alias rm='rm -i'kabuk başlatma dosyalarına dahildir; bu, dağıtımınızın veya sistem yöneticinizin ayarladığı bir şey veya bir yerden aldığınız ve yapılandırma dosyanıza eklediğiniz ve unuttuğunuz bir şey olabilir. ~/.zshrcİçin bir takma ad tanımı olup olmadığını kontrol edin rm. Birini bulursanız, kaldırın. Birini bulamazsanız takma adı kaldırmak için bir komut ekleyin:

unalias rm

6

Çift doğrulamayı devre dışı bırakmak için doğru komut gibi görünüyor setopt rm_star_silent. Çift doğrulamayı etkinleştirmek için yapın setopt no_rm_star_silent.

Daha ayrıntılı bilgi için zshoptions man zshoptionsveya http://linux.die.net/man/1/zshoptions adresindeki kılavuz sayfasına bakınız.


veyaunsetopt rm_star_silent
evandrix

1

Oh-my-zsh kullanıyorsanız ortak takma ad eklentisi rm -i takma adını içerir.

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
Bu bağlantı soruyu cevaplayabilse de, cevabın temel bölümlerini buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Yorumdan
jayhendren

@jayhendren - bu belgelere bir bağlantı değil, sorunu çözmek için kurulacak bir şeyin bağlantısı ...
Wouter Verhelst
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.