`takma ad rm =“ rm -i ”` zararlı mı?


17

Bir süre önce okudum (referansı bulamıyorum) gibi bir takma ad kullanmak alias rm="rm -i"çok kötüydü.

Bu gerçeğe ilişkin tarihsel kanıt veya sağduyu açıklaması var mı?

Bir kullanıcıya, takma adını kontrol etmek için onay istemine güvenme konusunda kötü bir alışkanlık verdiğini hayal ediyorum, bu da takma adı olmayan başka bir profilde yaparsa felaketlere yol açabilir.



Sanırım bahsettiğiniz konuyu buldum.
Daniel Beck

1
@ Daniel gerçekten de bu konunun en çok onaylanan cevabı bu kötü uygulamadan bahsediyor, ama aslında sorunun ana konusu değil.
Dunaril

Yanıtlar:


36

Haklısın.

Kötü çünkü buna alışıyorsun. Eğer buna sahip olmayan bir sistemdeyseniz ve siz rm, derhal silinmeye başlar ve neler olduğunu merak edersiniz.

Birçok kullanıcı farklı sistemlerde SSH kullanmaya alışkındır; bu nedenle, bazen kişiselleştirilmiş kullanıcı hesapları (takma adlar dahil) oluşturulmadan birçok farklı sistem kullanmak oldukça yaygındır.

Bunun yerine, örneğin kullanın alias rmi='rm -i've bunu kullanmayı öğrenin. Bu farklı bir sistemde ayarlanmamışsa, dosyaları yanlışlıkla silmediniz ve her zaman tam komutu yazmaya geri dönebilirsiniz.


4

@Daniel'in dediği gibi, orada olmasını beklemekten başka, kendi başına zararlı değildir. Aslında, CentOS'daki varsayılan kurulum (ve RHEL uzantısıyla, sanırım - bir tane kullandığımdan beri çok uzun sürdü) makineler ve tuçusta büyük bir ağrı var . Bu konserde kalan zamanım boyunca, "root erişimi olmaması gereken insanlar için Linux" kurulumundan kaçınmak için / bin / rm yazdım.


3
RHEL varsayılan olarak buna sahiptir, haklısınız, en azından kullandığım sistemler.
Daniel Beck

4

Bence büyük tehlike, insanların bir küreyi filtrelemek için böyle bir şeye güvenebilmeleridir. Bir dizindeki bazı resimleri silmek istediğinizi, ancak tümünü silmek istediğinizi düşünün:

rm -i pics/*.jpg

Bunu glob'u manuel olarak filtrelemek için kullanabilirsiniz, ki bu tamamen mantıklı olacaktır. Ama, rmtakma isim yapmış ve bu takma ad olmadan bir kabuğa inmiş olsaydınız ve denediyseniz ... sadece tüm resimlerinizi sildiniz, ayy!

Şahsen bu takma adı kan basıncım için zararlı buluyorum;). Ama bu sadece benim.


Güzel bir örnek. Tabii tehlike veya kumar gibi ..
Dunaril

2

Daniel Beck'in söylediklerine ek olarak, kendimi -fatlamak için kullandığımı buldum -i, bu da potansiyel olarak tehlikeli rm -fve rm -rfgereksiz yere sonuçlanır . Bir şekilde ilgili: rm -rfsorunları önlemek için bir yolu , bu sorunun cevabında duscissed olarak "-i" adlı bir dosya oluşturmaktır: Yanlışlıkla rm -rf / * nasıl önleyebilirim? .

Ama yine, bu takma ad orada olmasaydı, -f kullanmazdım ve her şey sorun olmayacaktı.


3
Görünüşe göre bu kötü uygulamayı daha da kötüleştirmenin bir yolunu
buldunuz

0

Bu, geçmişte yüzlerce kullanıcıyla çalışma deneyimime dayanarak çok daha az zararlıdır:

rm ()  # must be a function, must require single answer for all targets
{
    ls -FCsd "$@"
    local reply ; echo -n 'remove[ny]? ' ; read reply
    if [ "_$reply" = "_y" ] ; then
        /bin/rm -rf "$@" ; else echo '(cancelled)'
    fi
}
  • Kullanıcılar joker karakterleri sadece '*' değil doğru şekilde kullanmak üzere eğitilir ve ardından dosyaları seçmek için y / n komutlarına güvenir
  • Doğru joker karakter kullanma koşulu, rmbu işlevde veya rm -itakma adda bulunmayan başka bir bağlamda kullanıldığında genellikle felaketten kurtardı .
  • Kullanıcının 'y' yazdığı dosyaları geri yüklemek için daha az zaman harcadım
  • Kullanıcıların yalnızca bir kez yanıt vermeleri gerekir;
  • Control-c çalışmayı keser ve hiçbir şey yapmadığı raporlarıdır
  • Bir senaryo değil, bu yüzden gerçek rmdokunulmamış, diğer programları unutulmadan bırakıyor.

Kod stili çoğunlukla sh uyumludur ( echo .... | tr -d '\012'bash öncesi mermiler için kullanım hariç ), kendi bash'ınızı özel yapmaktan çekinmeyin. Kodun kendisini paylaşmak için değil, bununla birlikte gelen kullanıcı deneyimi değişikliğini paylaşmak için gönderiyorum .


Kamil: Cevabım, rm -itarihsel olarak (yüzlerce kullanıcıya sahip olma deneyimimde) hatalı dosya silme ile sonuçlandığını ve içerilen işlevin kullanıcıları doğru joker karakterleri kullanmak için eğittiğini ve hata oranını düşürdüğünü içeriyor. Bu yüzden rahatsız edici temel sorunları ele aldım rm -i ve kolaylık uğruna bir çözüm sağladım ve sadece mermi noktalarının işlevin altında olması , onların Alman olmalarını engellemiyor.
Alex North-Keys
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.