Her dosyayı silmek istiyorum, ancak klasör yapısını koruyorum. Bir yolu var mı?
NOT: (GNU bash 4.1.5 kullanıyorum).
Her dosyayı silmek istiyorum, ancak klasör yapısını koruyorum. Bir yolu var mı?
NOT: (GNU bash 4.1.5 kullanıyorum).
Yanıtlar:
Bunu dene:
find . ! -type d -exec rm '{}' \;
Bu işlem, geçerli çalışma dizininin altındaki dizinler hariç her bir dosyayı siler. Bu komutla son derece dikkatli olun.
Makinenizdeki sürümü find
destekliyorsa,
find . ! -type d -delete
find
Komut asla tırnak işareti görür. Sadece {}
işaretçiyi bir argüman olarak görür .
-exec command {} +
" ve bu " -exec command ;
". \;
Geçmişte hiç kullanmadım '{}'.
find
Her dosyayı bulmak, ancak dizin yapısını korumak için komutu kullanabilirsiniz :
$ find /some/dir -type f -exec rm {} +
Unix ve Linux'a göre şu soru ve cevaplar : gnu {} bazı kabuklar için {} bulup maskeliyor - hangisi? , {}
tek kenelerle ( '
) kaçmak artık Bash gibi modern kabuklarla artık gerekli görünmüyor.
Geçerli dizindeki ve alt dizinlerdeki her normal dosyayı tekrar tekrar silmenin kolay yolu:
zsh -c 'rm **/*(.)'
Yalnızca zsh, dosyaları türe göre eşleştirmek için globbing niteleyicilerine sahiptir . Ancak, rm
komut dizinlerde çalışmaz, bu yüzden bash'ta
shopt -s globstar
rm **/*
Bu, diğer komutlar için geçerli değildir rm
. Genel olarak şunları kullanabilirsiniz find
:
find . -type f -delete
ya da find
desteklemiyorsa -delete
:
find . -type f -exec rm {} +
Ben dizin yapısını silme ile bir yol ve alt dizinleri (zamana göre filtreleme) dosyaları silmek için benzer bir gereklilik vardı.
Ve benim için çalışan aşağıdaki biçimi kullandım.
find / test123 / home / test_file_hip / data / nfs -mtime +6 -tip f -exec rm {} \;
Syntex: find (dosya yolu) -mtime (günden fazla veya daha az) -type f -exec rm {} \;
-type: "d" dizini için "f" dosya türünden bahseder -exec: execute komutu rm: remove {}: find komutunun çıktısı
Not: Kullanmadan önce test edin. Bir şey kaçırırsam lütfen düzeltmek veya güncellemek için çekinmeyin.
find ... rm
yapı zaten ele alındığından, bunun bu soruya yeni bir Cevap olarak değerli bir katkı olduğundan emin değilim.