NAMEBir dizin ağacında adı ile başlayan tüm dosyaları bulmalı ve tüm bu dosyaları bir kabuk komutu ile kaldırmam gerekiyor.
NAMEBir dizin ağacında adı ile başlayan tüm dosyaları bulmalı ve tüm bu dosyaları bir kabuk komutu ile kaldırmam gerekiyor.
Yanıtlar:
adı olan tüm dosyaları silmek için --- kullanabilirsiniz
find -name . 'name*' -exec rm {} \;
grepbir -execanahtarı var?
Geçerli dizindeki ve dosya adının "foo" ile başladığı alt dizinlerindeki tüm dosyaları silin:
$ find . -type f -name foo\* -exec rm {} \;
Not: Dikkatli kullanın - ilk önce yedekleyin - ayrıca önce kuru bir işlem yapın, örneğin
$ find . -type f -name foo\*
Sadece silinecek dosyaların isimlerini söyleyeceğim.
find . -type f -name foo\* -deletenumarayı yaptım
Bu şekilde denedim, benim için çalışıyor, emir altında çalış.
rm -rf Example*
Burada "Örnek", tüm dosyalar için ortak olan metindir.
Kullanabilirsiniz find:
find . -name "name*" -exec rm {} \;
İle globstarseçeneğiyle (ile etkinleştirmek shopt -s globstar):
rm -f **/NAME*
**/genişlediğinde için ./, */, */*/, */*/*/bir varsa vb dizin ile başlayan isim NAME, komut şikayet edecek rmdizinleri kaldıramaz, ama hepsi bu.
Glob birçok dosyayla eşleşiyorsa bunun komut satırı uzunluğu sınırlamalarına girebileceğini unutmayın.
Alternatif olarak, rmmümkün olduğu kadar az başlatma ile , ancak komut satırı uzunluğu sınırlamalarına tabi değil:
find . -type f -name 'NAME*' -exec rm -f {} +
(İfadeyi kapatmak +yerine yerine dikkat edin .)\;-exec
find . -name 'foo'* -type f -delete En basit cevap gibi görünüyor.
Sen olmadan bu çalıştırabilirsiniz -deletesilinecektir hangi dosyaları görmek için önce bayrak.