find . | grep -v "excluded files criteria" | xargs rm
Bu, geçerli dizindeki tüm dosyaları listeler, ardından ölçütlerinize uymayan tüm dosyaları listeler (dizin adlarıyla eşleşenlere dikkat edin) ve sonra bunları kaldırın.
Güncelleme : düzenlemenize bağlı olarak, listelediğiniz dosyalar dışında mevcut dizindeki her şeyi gerçekten silmek istiyorsanız, bu kullanılabilir:
mkdir /tmp_backup && mv textfile.txt backup.tar.gz script.php database.sql info.txt /tmp_backup/ && rm -r && mv /tmp_backup/* . && rmdir /tmp_backup
Bir yedekleme dizini oluşturacaktır /tmp_backup
(kök ayrıcalıklarınız var, değil mi?), Listelediğiniz dosyaları bu dizine taşıyın, geçerli dizindeki her şeyi tekrarlayın (doğru dizinde olduğunuzu biliyorsunuz, değil mi?), Taşıyın geçerli dizine geri dönün /tmp_backup
ve son olarak silin /tmp_backup
.
Kökte olmak için yedekleme dizinini seçiyorum, çünkü her şeyi kökten yinelemeli olarak silmeye çalışıyorsanız, sisteminizde büyük sorunlar olacaktır.
Elbette bunu yapmanın daha zarif yolları var, ama bu oldukça basit.