Mac Terminali: Alt dizinler arasında dolaşın ve tüm görüntüleri optimize edin


3

Görüntülerle dolu birçok alt klasörü içeren bir klasör var. Ekteki resme bakınız.

alt

Temel olarak hepsi arasında döngü oluşturmak ve görüntüleri küçültmek istiyorum, böylece hiçbiri 1024 pikselden daha geniş olamaz. Hepsi jpeg.

SIPS komutlarının farkındayım, yani

sips -Z 1024 *.png

Ancak, bu işlem yalnızca tüm görüntüler geçerli dizindeyse işe yarar.

Tüm alt dizinlerde gezinmek için nasıl ayarlayabilirim?

Yanıtlar:


8

Bul ile çalıştırabilirsiniz: find images/path -type f -name '*.png' -exec sips -Z 1024 {} \;

Bulunacak dosyaları (-type f), png uzantılı (-name '* .png') 'images / path' dizini içinde arayacak ve komutu, "{}" yerine dosya isminin yerine koyacağınız komutu yazmalısınız. "\;" ile komut.


Teşekkürler. Aslında bazılarını yeniden boyutlandırmamakla ilgili bir sorun yaşadım, ancak imagemagick ile de aynısını yaptım:find /images/path -type f -iname "*.jpg" -execdir convert {} -resize 1024x1024\> -quality 70 {} \;
Quadrant6

Teşekkürler, bir kez daha yudum komutunu deniyorum, sanki bir şey yapıyormuşçasına geçiyor ama aslında yeni dosyayı kaydetmiyor gibi görünüyor. find images/path -type f -name "*.jpg" -exec sips -Z 1024 -s format jpeg -s formatOptions 80 {} \;
Çeyrek6

@ Çeyrek6 dosyayı geçerli dizinde kaydetmediğini kontrol edin, ayrıca sips komutunu aynı yolda tek başına test edin, ancak bir test görüntüsü dosyası için tam yol adını belirtin.
denisvm

1

Benim için çalışan küçük bir bash betiğini değiştirmeyi başardım

#!/bin/bash

find "foldername" -type f | \
while read file ; do
    echo "processing ${file}"
    sips -Z 2000 ${file}
done
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.