Ne gelmez rm -rf
kaldır dosyaları veya dizinleri kullanıldığında mı?
-r
Ve -f
seçenekleri birlikte nasıl çalışır?
Ne gelmez rm -rf
kaldır dosyaları veya dizinleri kullanıldığında mı?
-r
Ve -f
seçenekleri birlikte nasıl çalışır?
Yanıtlar:
Komut rm -rf
aynıdır rm -r -f
.
Gönderen rm
bireyin adam sayfası (tip man rm
bir terminal olarak görmek için) -r
yapar:
remove directories and their contents recursively
Ve -f
yapar:
ignore nonexistent files and arguments, never prompt
Yani kombinasyon halinde ikisini de yapıyorlar.
Lütfen bu komutu dikkatli kullanın!
rm -rf /
Teorik olarak, bilgisayarınızda yazma izni olan bir dizinde bulunan her dosyayı silecektir. Kökseniz, tüm sistemi yok etmek demektir. (Uygulamada, işe yaramadı çünkü GNU rm
, rm -r /
siz de söylemediğiniz sürece izin vermeyi reddeden özel bir davaya sahip --no-preserve-root
.)
rm -rf /
düzgün şekilde yakalanıp yakalanmadığını görmeyi denemeyi önermiyorum .
Önceki doğru cevaba ek olarak, nasıl balık tutulacağını öğretmek isterim:
Bir komutun nasıl çalıştığından, hangi seçeneklerden ve ne yaptığından emin değilseniz, bir terminal açın ve yazın
man <command>
Örneğin:
man rm
İçeri girdikten sonra, seçeneği arayabilirsiniz. Bir man sayfasının okunması çok uzun olabilir, bu yüzden terminal türünde:
/<pattern>
Örneğin, yapıyor:
/-f
Kolayca iniş yapabilirsiniz:
-f, --force
ignore nonexistent files and arguments, never prompt
-R için:
-r, -R, --recursive
remove directories and their contents recursively
n
(Sonraki) ve N
(önceki) düğmelerini kullanarak arama sonuçları arasında geçiş yapabilirsiniz .
Bir şey yapmanız gerekiyor ancak komut adını bilmiyorsanız, apropos
man sayfalarında arama yapmak için kullanın :
apropos <pattern>
Örneğin:
apropos directory listing
rm
kaldırmak için kısa. r
Bayrak kaldırma dizinleri ve bunların içerikleri ardışık ve etmektir f
araçlar kuvvet ve herhangi onay istemlerini geçersiz kılar.
r flag is to remove directories
doğru değil ... dizinleri içeriğiyle birlikte kaldırır, yinelemeli bir işlemdir ... kelimelerinize göre, sadece dizinleri kaldırır, peki alt dizinler, altındaki dosyalar? dizin girdisi adı-inode eşleştirmesini içerdiğinden sadece bu ancak herhangi bir anlam ifade etmez ..
Daha önce de belirtildiği gibi, rm -rf <ARG>
dosyaları tekrarlı bir şekilde zorla kaldırmak <ARG>
, bir dizin ise (sadece iyi bir dosya olsa da) anlatılmak içindir.
-r
(Özyinelemeli kaldırma) bütün mesele, rm
eğer boş değillerse, dizinleri kaldıramazlar, çünkü sadece temel dizini rm
kullanan ( unlink ) sistem çağrısı sadece boş dizinlerde çalışır. Böylece, -r
bayrak ne yapar, derinlik ilk arama dizin içine inen ve ilk önce dosyaları kaldırma, ancak daha sonra dizin boş olduğunda - onu kaldıracaktır. Bu aynı etkiye bayrakla yapılan find
komutla ulaşılır -delete
(filtrelemeyi siz belirlemediğinizde -type
, ancak bu başka bir hikaye).
Gelince -f
, iki şey yapar - biri dosyayı silmek isteyip istemediğinizi sormaz (örneğin, başka bir kullanıcının sahip olduğu bir dosyayı dizininizden kaldırırken, rm: remove write-protected regular empty file 'f1'?
onay istemi göstermez ) ve yok sayar. var olmayan dosyalar. Mesela, var olmayan bir dosya adıyla, rm: cannot remove 'nonexistent': No such file or directory
hata almalısınız .
Ayrıca bakınız: