Bul file - / + size hariç * .filetype


1

Uzantı veya daha fazlası olan dosya adları hariç tüm dosyaları boyuttan daha az bulabilen bir şey yapmanın bir yolunu arıyorum. Birden fazla olabilir.

find . -type f -size -20M -name /! -name *.mp3 -delete

Çevrimiçi bulduğum bazı şeylerden aradığım şey olacağını düşündüm ama işe yaramadı. Neredeyse bunu arıyorum

find . -type f -size -/+ size (except) *.ext -delete

Ne düşünüyorsun?

Yanıtlar:


0

! o find değil Şebeke. Bu nedenle sonuçlarda .ext ile biten dosyaları hariç tutmak için terimi ekleyin ! -name \*.ext.

Dosya boyutu gibi sayısal değişkenler için + anlamına geliyor daha büyük ve bir öneki - anlamına geliyor daha az . Bu yüzden, 12 kilobayttan (gerçekten kibibitten) daha büyük ve 500 Megabayttan (gerçekten Mebibitten) daha küçük bir dosya bulmak için, terimleri -size +12k ve -size -500M.

İkinci örnek daha sonra böyle bir şey olurdu.

find . -type f -size +12k -size -500M ! -name \*.ext -delete

Çok teşekkür ederim. Bir klasörü benim için otomatik olarak temizlemek için kullanıyorum. bu yüzden birden fazla uzantı silmek istemezseniz bulunacaktı. tipi f büyüklüğü + 12k büyüklüğü -500M! -adı * .ext * .ext -delete
natethegreat141990

Bir veya daha fazla uzantıya sahip bir dosya adı en az bir nokta içeriyor; *.*. İki veya daha fazla uzantıya sahip bir dosya adı en az iki nokta içeriyor, böylece kalıba uyuyor *.*.*. Her uzantının en az bir karakter içerdiğinden emin olmak istiyorsanız, bu modelleri *.?* ve *.?*.?*, sırasıyla. Bu gerçekten uğraştığınız dosya adlarına bağlıdır. Bir dosya grubunu diğerinden ayırmak için gerekenden daha karmaşık bir kalıp istemiyorsunuz. Ve elbette herhangi bir şeyi silmek için kullanmadan önce test edin.
garyjohn

üzgünüm, aralarında boşluk var. * .Ext ve * .ext? Anlamına geliyordu.
natethegreat141990

Yalnızca uzantısı olan dosyaları silmek istiyorsanız, değil .ext ve olduğu değil .ext?, sonra kullanabilirsin find ... ! -name \*.ext ! -name \*.ext\\? -delete. Bu uzantı gerçekten bir soru işareti içeriyorsa, soru işaretinin görünmesi için soru işaretinden kaçılması gerektiğini unutmayın. find değişmez bir soru işareti ve "herhangi bir tek karakter" sembolü olarak değil.
garyjohn
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.