Bu büyük arşivde .jpg, .gif, .png vb. Gibi birçok grafik resim türü vardır. Tüm türleri bilmiyorum. Nokta uzantısı adlarından bağımsız olarak tüm grafik görüntüleri listeleyebilmek için 'bulmak' bir yolu var mı? Teşekkürler!Linux bul: Bul ile tüm grafik imaj dosyalarını listeleyebilir misiniz?
cevap
Bu kandırmasına
find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'
örnek çıkışını yapmalıdır:
./navigation/doc/Sphärische_Trigonometrie-Dateien/bfc9bd9372f650fd158992cf5948debe.png: PNG image
./navigation/doc/Sphärische_Trigonometrie-Dateien/6564ce3c5b95ded313b84fa918b32776.png: PNG image
./navigation/doc/subr_1.jpe: JPEG image
./navigation/doc/Astroanalytisch-Dateien/Gamma.gif: GIF image
./navigation/doc/Astroanalytisch-Dateien/deltaS.jpg: JPEG image
./navigation/doc/Astroanalytisch-Dateien/GammaBau.jpg: JPEG image
Video için alınabilecek benzer bir yaklaşım var mı? Görünüşe göre "görüntü" ile "video" değiştirilirse, Quicktime ve Matroska formatları atlanır ... –
@ElderGeek Bazı örnekler üzerinde dosya çalıştırabilir ve grep olabileceğim bir metin parçası olup olmadığına bakardım. Awk çözümünün görüntü bölümünde, örneğin/video | image | foo için örneklemi ayırabiliyordunuz./Video dosyasındaki video, resim veya foo kelimelerini içeren tüm dosyaları dosyadan döndürdüler. – f3xy
GIF görüntüsünden nasıl kurtulabileceğime dair herhangi bir fikir veya: JPEG resmi ve sadece dosyanın adı ve yolu ile bırakılabilir, böylece çıktı olarak başka bir komuta iletebilirim? – VaTo
find . -type f -exec file {} \; | grep -o -P '^.+: \w+ image'
daha iyi olmalıdır.
neden bu daha iyidir ? – Selah
Aşağıdakiler bana daha iyi uyuyor çünkü benim durumumda bu dosya listesini başka bir programa aktarmak istedim.
find . -type f -exec file {} \; | awk -F: '{if ($2 ~/image/) print $1}'
Çıktıyı pipetlemek istiyorsanız bu gerçekten varsayılan cevaptır. Teşekkürler! –
Sadece "image" için awk kullanmak veya kullanmak awk yapmayacaktır. PSD dosyaları, "I" ile bir sermaye "I" ile tanımlanacaktır, dolayısıyla regexp'i büyük/küçük harfe duyarsız hale getirmemiz veya I. sermayeyi de içermemiz gerekir. EPS dosyaları, "görüntü" kelimesini içermeyecektir. Ne istediğinize bağlı olarak "EPS" veya "Postscript" için de eşleştirmeniz gerekir. Yani burada benim geliştirilmiş bir versiyonu: Aynı soruna İlgili
find . -type f -exec file {} \; | awk -F: '{ if ($2 ~/[Ii]mage|EPS/) print $1}'
, sadece photofind (https://github.com/trimap/photofind) adında bir araç yayınladı. Normal bul-komutu gibi davranır, ancak görüntü dosyaları için özeldir ve görüntü dosyalarında saklanan EXIF-bilgisine dayanarak sonuçların filtrelenmesini destekler. Daha fazla bilgi için bağlantılı github-repo'ya bakın.
Bir çözüme bağlantıya açığız, ancak cevabın onsuz yararlı olduğundan emin olun: [bağlantı etrafında bağlam ekle] (http://meta.stackexchange.com/a/8259) böylece diğer kullanıcılarınız ne hakkında biraz fikir sahibi olurlar? o ve neden var, o zaman hedef sayfanın mevcut olmaması durumunda linking ettiğiniz sayfanın en alakalı bölümünü alıntı. [Bir linkten biraz daha fazla olan cevaplar silinebilir] (http://stackoverflow.com/help/deleted-answers). – mrun
Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Review/Review/low-quality-posts/17292640] –
Bu yardımcı program, bir dosya uzantısında biten dosyanın ismine dayanıyor gibi görünüyor. Bu, dosya komutunun çıktısını kontrol etmek kadar güçlü olan bir yer değil.Sağladığınız bağlantıdan, bulunduğunuz yeri bulmak için bir örnek var ('find ~/Pictures \ (-iname" * .jpg "-or -iname" * .jpeg "-or -iname" * .png "-or -iname "* .tif" -ve -iname "* .bmp" -or -iname "* .gif" -or -iname "*. xpm" -ve -iname "* .nef" -or -iname "* .cr2" -ve -iname "* .arw" \) -size + 20k') – f3xy
Korkarım ki tüm uzantıları bulmayı deneyen bir bash betiği yazmanız gerekecek. –
Bir şekilde, dosyanın türünü bilen 'dosya' komutuyla birleştirilebilir mi? – Edward