Bir klasör ve alt klasörlerinde uzantı içermeyen tüm dosyaları bulma ve silme


16

Yaklaşık 500 alt dizini olmayan bir klasörüm var. İçinde bulunacak çok fazla çöp var ve onu temizlemek istiyorum.

Bu komutla resimler gibi istemediğim bazı dosya türlerini zaten sildim:

find . -mindepth 1 -iname "*.jpg" -type f -delete

Ancak, şimdi uzantısız tüm dosyaları silmek istiyorum. "Alışveriş listesi.txt" yerine "Alışveriş listesi" gibi dosyalar

Aşağıdaki komutu denedim ama işe yaramadı:

find . -mindepth 1 ! -iname "*.*" -type f -delete

Yanıtlar:


20

Bunu dene:

find . -type f  ! -name "*.*"  -delete

Ancak, yukarıdaki adın .örneğin a ile biten dosyaları silmeyeceğini unutmayın foo.. Bunları da silmek için bunun yerine şunu kullanın:

find . -type f  ! -name "*.?*" -delete

İkinci komut bir sonraki sorumdu. Çok teşekkürler! Ayrıca find . -type f ! -name "*?.*" -delete".trash" gibi dosyaları kaldırmak için yazabilirim ya da ihtiyacım olan her neyse. Endişelenme - Ana dizinim değildi, bu yüzden hiçbir yapılandırma dosyasını kaybetmedim.
etsnyman

5
@etsnyman Komutu -deleteseçenek olmadan test etmek daha iyidir !
Radu Rădeanu

@etsnyman tam olarak değil, bir nokta ile başlayan dosyaları kaldırmak find . -type f -name ".*" -deleteiçin son yorumda bulunanı da uzantıları olmayan dosyaları da silecektir. Ve Radu ne dedi! Önce test edin!
terdon

@ RaduRădeanu Ben aslında ilk boş dosyaları ile bir kukla dizinde test ...
etsnyman

@terdon İkinci komutunuzdaki soru işareti ne anlama geliyor?
Avinash Raj

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.