Gizli dosyalar ve dizinler dahil bir dizindeki her şeyi nasıl silebilirim?
Şu anda, aşağıdakileri kullanıyorum:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..
dizinde bulunanları silecek olan dizinle eşleşecektir .
Gizli dosyalar ve dizinler dahil bir dizindeki her şeyi nasıl silebilirim?
Şu anda, aşağıdakileri kullanıyorum:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..
dizinde bulunanları silecek olan dizinle eşleşecektir .
Yanıtlar:
Basit ve yalındır:
find -delete
Dizinler ve gizli dosyalar içerir. En azından gnu-bul bilir -delete
, find
farklı olabilir.
find /path -delete -mindepth 1
.
En iyi cevap şudur: Yapma bunu. Tekrar tekrar dizinin kendisini kaldırın, ardından boş bir dizin olarak yeniden oluşturun. Başkalarının ne yapmaya çalıştığını anlaması daha güvenilir ve kolaydır. Dizini yeniden oluşturduğunuzda farklı bir sahibi, grubu ve izinleri olabilir. Bunlar önemliyse dikkatli olun. Ayrıca, çalışan programların dizinde açık dosya tanıtıcıları (tanımlayıcılar) varsa, kaldırmak istemezsiniz. Bu özel durumlardan hiçbiri geçerli değilse, dizinin tamamını kaldırmak daha kolaydır.
rm -rf -- * .[!.]* ..?*
Üç örüntüden her biri, eğer hiçbir şeyle eşleşmezse kendi kendine genişler, ancak burada her şeyle eşleşmek istediğimiz ve rm -f
varolmayan argümanları göz ardı ettiğimiz için sorun değil .
Not .*
eşleşir..
.
dizinde iseniz:
cd .. && rm -rf dir && mkdir dir && cd dir
aksi takdirde:
rm -rf /path/to/dir && mkdir /path/to/dir
Ah benim Zsh
rm -rf (.|)*
Yine, bu sadece Zsh içindir.
*(D)
( D
glob niteleyicisi glob_dots
bu düzen için seçeneği açar ).
rm -rf {.,}*
(Bash aksine zsh içermez .
ve ..
içine {.,}*
en az benim makinede).
Nasıl kullanılacağı hakkında find
. Bence bu genellikle iyi bir seçimdir, alt dizinleri araştırmanız gerekir.
find . -type f -exec rm {} \;
Dene rm -rf *?*
. Bu normal ve gizli dosyaları silecektir.
*?*
“nokta” dosyalar / dirs ile eşleşmeyecek olması daha olasıdır ( bash seçeneğini, zsh içindeki seçeneği veya kullandığınız kabuk için bir eşdeğeri dotglob
seçeneğini belirtmediyseniz ). GLOB_DOTS
rm -rf .* *
.