Dosya adları belirli bir dize içeren tüm dosyaları sil?


22

WordPress temamı değiştirdim. Büyük olanı sunucuda çok fazla resim oluşturdu. Yeni temamın onlara ihtiyacı yok, bu yüzden hepsini kaldırmak istiyorum. Bunu nasıl yapabilirim?

Örneğin:
Varsayılan resim:12_angry_men_lone_holdout.jpg

Silmek istiyorum:

12_angry_men_lone_holdout-290x166.jpg
12_angry_men_lone_holdout-700x300.jpg 
12_angry_men_lone_holdout-50x50.jpg

Digitalocean kullanarak, Ubuntu 13.10.


man rmrm komutunun kılavuz sayfasını görmek için terminal tipinde .
hmayag


Bu görüntüler WorldPress ortam kitaplığınıza yüklenen resimlerden otomatik olarak oluşturulan küçük resimlere benziyor. Öyleyse, sunucudaki terminaldeki bu dosyaları silmeyin. WordPress yönetici sayfanızı açın, 'Ayarlar'> 'Medya'yı açın. İstediğiniz küçük resim boyutunu orada ayarlayın. Daha sonra eklentiyi kurun Küçük Resimleri Yeniden Oluştur ve tüm küçük resimleri yeniden oluşturun (ortam kitaplığınızdaki görüntülerin miktarına bağlı olarak birkaç dakika sürebilir).
Bob,

Yanıtlar:


22

Aynı klasördeyse, bunu başarmak için * joker karakter kullanın:

rm *text*

textDosya adının bulunduğu dize.


Aslında bir dizin değil ama şimdilik bunu tek tek yapabilirim. Teşekkür ederim!
İbrahim Mumcu,

27

findAdlarında "metin" olan dosyaları tekrarlı olarak bulmak ve silmek için kullanın :

find -type f -name '*text*' -delete

Silmek istemediğiniz dosyaları silmeyeceğinizden emin olmak için bundan önce find -type f -name '*text*'(olmadan -delete) çalıştırılmasını da isteyebilirsiniz .


Aslında, arama dizesinde herhangi bir yere joker karakterler yerleştirebilirsiniz, bu nedenle -name '12_angry_men_lone_holdout-*.jpg'sizin durumunuz için daha uygun olabilir.


Dosya yolunu temsil etmeye gerek yok mu
Avinash Raj

@AvinashRaj İlk parametre bir yol değilse find, geçerli çalışma dizinini arar.
n.st

Biri koymuş. Geçerli çalışma dizininde arama yaptıktan hemen sonra.
Avinash Raj

1
@AvinashRaj Bu gereksiz olurdu. Başına göre man find: Hiçbir yol belirtilmezse, geçerli dizin kullanılır.
n.st

@AvinashRaj çıkıyor POSIX için şartname findaslında gelmez bir yol gerektirir. Varsayılan olarak .GNU find tarafından eklenen bir değişikliktir. Eğer bu Unix ve Linux olsaydı, cevabımı buna eklerdim, ama Ubuntu varsayılan olarak GNU'yu bulduğu için, yeni gelenleri gereğinden fazla karıştırmamayı tercih ederim. ;)
n.st

1

Bunu dene:

rm -rf 12_angry_men_lone_holdout-*

Bu, keep 12_angry_men_lone_holdout.jpgboyutları olan dosyaları kaldıracak (290x166)

Ve lütfen unutma

rm -rf 12_angry_men_lone_holdout.*

ihtiyacınız olan varsayılan dosyayı da silecektir.


0
find . -type f -name '*[0-9]x[0-9]*' -delete

Bunu ana dizinde çalıştırın. Bu, basamakta ardından 'x' karakteri olan ve ardından adlarında başka bir basamak bulunan tüm dosyaları siler.

Yine de dikkat edin, eğer adları yukarıdaki modeli içeriyorsa, orijinal dosyaları da silebilir (olası değildir). Böyle bir ada sahip herhangi bir dosyanız olup olmadığını görmek için önce '-delete' olmadan çalıştırın. Bu durumda, sadece daha kısıtlayıcı bir model bulmanız gerekir.

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.