Terminal (bash kabuğu) ile dosya ve dizinleri hızlı bir şekilde kaldırma [kapalı]


331

Terminal penceresinden:

rmKomutu kullandığımda yalnızca dosyaları kaldırabilir. Komutu
kullandığımda rmdiryalnızca boş klasörleri kaldırır.

Dosyaları ve benzerleri olan klasörler içinde dosya ve klasörlerle iç içe bir dizinim varsa, yorucu komut yazmadan tüm dosyaları ve klasörleri silmenin bir yolu var mı?

Bir fark yaratırsa, Microsoft DOS veya linux değil, terminalden mac bash kabuğunu kullanıyorum.


Gelecekte dosyaları geri yüklemek istediğinizde, bu gibi durumlarda "rm" kullanmayın. "Rm-trash" kullanın: github.com/nateshmbhat/rm-trash
Natesh bhat

Yanıtlar:


760
rm -rf some_dir

-r "özyinelemeli" -f "kuvvet" (onay iletilerini bastır)

Dikkatli ol!


26
+1 ve "Dikkatli ol!" bölüm ... kesinlikle bir "Sawzall" komut hızlı bir şekilde iyi bir gün kötü bir dönüştürebilirsiniz .. dikkatsiz kullanılırsa.
itsmatt

5
gibi "# rm -rf /" dont pişman olacak:
DarthVader

1
@itsmatt: Ne dediklerini biliyorsun ... birine Sawzall ver, ve aniden her problem saatlerce eğlenceli görünüyor!
Jim Lewis

164
Mac'te mi? Bunun yerine bunu yapın: brew install trasho zaman trash -rf some_dirbu, istenmeyen dizini sadece Prestige stilini etere kaybolmak yerine çöp kutunuza taşıyacaktır . ( kaynak )
zakdances

4
"Çöp" yaklaşım harika!
Mart'ta

59
rm -rf *

Geçerli dizindeki her şeyi (klasörleri ve dosyaları) kaldıracaktır.

Ama dikkat et! Bu komutu yalnızca doğru dizinde olduğunuzdan kesinlikle eminseniz yürütün.


17
rm -rf çok riskli bir komut, her zaman dikkatli olmalı ve silinecek klasörü belirtmelisiniz.
eomeroff

8
ls -R *Neler tarafından silineceğini görmek için ilk koşmaya ne dersinizrm -rf *
Hammad Khan

Bu benim için iyi çalışıyor, teşekkürler.
Monica Hübner

14

Evet var. -rSeçenek söyler rmolmaya r ecursive ve bağımsız değişkenleri de köklü tüm dosya hiyerarşisini kaldırmak; başka bir deyişle, bir dizin verilirse, tüm içeriğini kaldıracak ve sonra etkin bir şekilde bir rmdir.

Bilmeniz gereken diğer iki seçenek -ive -f. -ianlamına gelir i nteractive; yapar rmher dosyayı silmeden önce bilgi istemi. -façılımı f Orce; devam eder ve sormadan her şeyi siler. -idaha güvenli, ancak -fdaha hızlı; sadece doğru olanı sildiğinizden kesinlikle eminseniz kullanın . Bunları ile -rya da ile belirtebilirsiniz ; bağımsız bir ortam.

Ve her zamanki gibi, anahtarları birleştirebilirsiniz: rm -r -isadece rm -rive rm -r -föyle rm -rf.

Ayrıca öğrendiklerinizin bashher Unix OS'de geçerli olduğunu unutmayın : OS X, Linux, FreeBSD, vb. Aslında, rmsözdizimi hemen hemen her Unix işletim sistemindeki her kabukta aynıdır . OS X, kaputun altında, gerçekten bir BSD Unix sistemidir.


1
Yukarıda belirtilen tüm seçenekler listelenen tüm Unix lezzetleri arasında standart olmasına rağmen, bazı farklılıklar da vardır. Örneğin, "rm -d"dosyaları veya boş dizinleri kaldıran OS X (Linux değil) vardır . Yine de, OS X'in dahili olarak BSD olduğu nokta için +1.
David Gelhar

Doğru --- POSIX alt kümesinin (neredeyse) Unixen'de tutarlı bir şekilde çalışması garanti edilir, ancak bunun dışında herhangi bir şey olabilir veya olmayabilir.
Antal Spector-Zabusky

2

Bu yüzden, bazı dizinler ve dosyalar dışında bir dizindeki tüm dosyaları kaldırmanın bir yolunu arıyordum, etrafta tutmak istedim. Çok arama yaptıktan sonra find kullanarak bunu yapmak için bir yol tasarladı.

find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \;

Esas olarak, sonuçlardan hariç tutulacak dizinleri seçmek için regex kullanır ve ardından kalan dosyaları kaldırır. Bir başkasının ihtiyacı olması durumunda buraya koymak istedim.

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.