Terminalde boş olmayan bir dizini nasıl silebilirim?


630

Aşağıdaki dizini nasıl silebilirim?

Yazdım:

rmdir lampp

Bu hata ortaya çıkıyor:

rmdir: failed to remove `lampp': Directory not empty

Dizindeki tüm dosyaları silmek ve dizin klasörünü silmek için bir komut var mı?


1
Yukarıdaki tüm ayrıntılı komutları kullanarak "Yeni Klasör" gibi bir dizini kaldıramıyorum. Çifte ifadeli. Ancak bu dizini kaldırmak istiyorum. Herhangi bir öneri kabul edilecektir. T.Divakara, Bengaluru, Hindistan

Dosya adındaki boşluk, 'quotes'> rmdir 'New Folder' <sonra klasör disketlerini kullanmayı deneyin veya görünmeyen karakterler için escape karakterlerini kullanın.
Ken Mollerup

2
Sadece rm -r lamppyapacağım.
John Strood

Yanıtlar:


876

Aşağıdaki komutu kullanın:

rm -rf lampp

lamppDizindeki tüm dosyaları ve klasörleri siler .

Kullanıcının klasörü silme izninin olmaması durumunda:

sudoKomutun başına ekle :

sudo rm -rf folderName

Aksi takdirde, sensiz sudoiade edilmeyecek reddedilir. -fBir dizini silerken kullanmamaya çalışmak iyi bir uygulamadır :

sudo rm -r folderName

Not: Bu, zaten terminalde silmek istediğiniz klasörde aynı seviyede olduğunuzu varsaymaktadır, eğer değilse:

sudo rm -r /path/to/folderName

Bilginize: Harfleri kullanabilirsiniz -f, -r, -v:

  • -f = varolmayan dosyaları yoksaymak
  • -r = dizinleri ve içeriklerini tekrar tekrar kaldırmak için
  • -v = ne yapıldığını açıklamak

69
Benim düşünceme göre, ilk denemede asla "f" yi eklememek iyi bir uygulamadır. Amacı, özellikle yanlışlıkla yanlış bir dizinde / üzerinde yapmışsanız, önemli olabilecek bazı uyarı istemlerini yoksaymaktır. Bence ilk önce "f" denemeden denemek iyidir, o zaman sadece çok fazla uyarı istemiyle karşılaşırsanız ve hepsini görmezden geldiğinizden emin olduğunuzdan emin olun, Ctrl + C tuşlarına basın ve komutu tekrarlayın " f".
thomasrutter

Değil @BKSpurgeon sürece yanlışlıkla yazın --no-preserve-rootçok .
muru

@thomasrutter ... Katılıyorum. Bir dosya "xxx" sahibi: root ve group: root -f anahtarıyla silinebilir ; ve sudo olmadan . Bu, -f : " rm: yazma korumalı düzenli dosyayı kaldır '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _". _Dikkatle okuyunuz.
olacak

95
rm -R lampp

Bununla birlikte, böyle bir özyinelemeli komutla dikkatli olmanız gerekir, çünkü yanlışlıkla silmek istediğinizden daha fazlasını silmek kolaydır.

Enter tuşuna basmadan önce, hangi dizinde bulunduğunuzu ve komutu doğru yazıp yazmadığınızı her zaman iki kez kontrol etmek iyi bir fikirdir.

Daha güvenli sürüm

rm -R -i lampp

Eklemek -ibiraz daha güvenli hale getirir, çünkü her silme işleminde sizi yönlendirir. Ancak, çok sayıda dosyayı siliyorsanız bu çok pratik olmayacaktır. Yine de bunu önce deneyebilirsiniz.

Seçenek hakkında not -f :

Birçok insan can sıkıcı istemlerden kurtulduğunu iddia ederek kullanmayı -f(içine -Rfya da birleştirmeyi) önerir -rf. Ancak, normal durumlarda bunu gerekir ve bunu kullanarak muhtemelen bazı sorunlar bastırır yok yok bilmek istiyorum. Kullandığınızda, argümanlarınız var olmayan bir dizin veya dosya (lar) sağlarsa uyarılmazsınız: rm sessizce hiçbir şeyi silme konusunda başarısız olur. Genel bir kural olarak, ilk önce aşağıdakileri yapmadan deneyin -f: eğer argümanlarınızla ilgili bir problem varsa, farkedeceksiniz. Yazma erişimi olmayan dosyalar hakkında çok fazla bilgi istemeye başlarsanız, deneyebilirsiniz.-f. Alternatif olarak, komutu, bu istemleri ilk başta önlemek için sildiğiniz dosyalara ve dizinlere tam izinleri olan bir kullanıcıdan (veya sudo kullanan süper kullanıcı) çalıştırın.


4
Not: Küçük harf -rde kullanılabilir ve burada aynı etkiye sahiptir. Yalnızca büyük harf kullanma eğilimindeyim -Rçünkü bu , bazılarını yalnızca büyük harf biçimini destekleyen grepve kullandığım diğer komutlarla tutarlı chmod.
thomasrutter

Bu benim için Android'de adb (android hata ayıklama köprüsü) kullanarak çalıştı. Rm deniyordu -rf ama işe yaramadı. Rm -R kullanmak zorunda kaldım. Teşekkürler.
Raddevus

Bu, özellikle de Bash terminalini kullanma konusunda deneyimsizseniz, iyi bir çözümdür. Komut kısaltılabilir rm -ir FOLDER.
AlainD,

24

CLI modu ile bir dizini silmek için birçok yol vardır. Hangi yoldan rahat olduğunuza bağlı.

rm -rvf /path/to/directory  
  • -r = dizinleri ve içeriklerini tekrar tekrar kaldır
  • -v = ne yapıldığını açıkla
  • -f = varolmayan dosyaları yoksay, asla sorma

Linux'ta yeniyseniz, man rmdaha fazla seçenek ve daha fazla doğruluk için man (komut ) sayfalarını kullanın .


-2

Bugün bununla ilgili bir sorunum vardı ama sudo ile üstesinden geldim.

Uyarı: Aşağıdaki komutu kullanmadan önce her şeyi silmek istediğinizden emin olun.

$ sudo rm -R [Directory name]

Bunu bugün başarıyla yaptım ve istemediğimi / ihtiyacım olmadığını onayladığım birçok boş olmayan dizini kaldırdım.

14.04 LTS kullanıyorum


4
"SUDO" bir komut değil - "sudo" dir. Bununla birlikte, boş olmayan bir dizini silmek için sudo kullanmazsınız, size ait olmayan bir dosyayı silmek için kullanırsınız. Elbette bunu yapmak tehlikeli ve çok akıllıca değil çünkü sahip olmadığınız dosyaları silmelisiniz.
Marty Fried,

-3

Bu arada, kişisel olarak yazmaya karşı korumalı bir dosya / dosya (.git ve alt dizinler) içeren bir dizini silmek istedim ve sonunda bu dosyaları başarılı bir şekilde silmek için süper kullanıcı olmam gerektiğinin farkına vardım. İşte yaptığım şey:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/

4
sudo suBurada ihtiyacın olduğunu sanmıyorum . Sadece rmkomutu ile önek sudo. Güvenlik açısından, gerekli olmadığında kök istemi içerisinde kalmamak (sudo yandaşlarına göre) iyi bir uygulamadır.
thomasrutter

2
Ayrıca, eğer hangi dizinde olduğunuzdan çok çok emin olun sudo rm -r.
Tony Martin

Komutu root göreceli ( /directory_name) yapabilirsiniz, böylece hangi dizini sildiğiniz konusunda hiç şüphe olmaz.
Yaakov Ainspan
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.