دوستی پرسیده چطور می تونه ده تا عکس با فرمت jpg رو از طریق کامند لاین به png تبدیل کنه. بذارین با هم پیش بریم. اول یک دایرکتوری می سازم که بتونیم توش کار کنیم:
➜ /mkdir /tmp/jpg2png ➜ /cd /tmp/jpg2png ➜ jpg2png
حالا باید ده تا عکس جی پگ اتفاقی از کامپیوتر پیدا کنم. یک دستور بامزه هست که هم فایل ها با پسوند جی پی گ رو نشون می ده؛ البته در یک دایرکتوری خاص که اینه:
find ~/Pictures -iname '*jpg'
کافیه کل خروجی ها رو به شکل رندم مرتب کنیم:
find ~/Pictures -iname '*jpg' | sort --random-sort
که البته چون روی مک هستیم که توش یکی تصمیم گرفته sort استاندارد گنو رو بیخیال بشه و یک سورت ناقص تحویلمون بده، باید از سورت گنو که با برو نصب شده استفاده کنم، یعنی:
find ~/Pictures -iname '*jpg' | gsort --random-sort
و اگر ده تا اولی رو پیدا کنیم، یعنی ده تا فایل اتفاقی از دایرکتوری عکس ها ریختم .. نه.. باید بریزیمش… پس می دیم به ایکس آرگز:
find ~/Pictures -iname '*jpg' | gsort --random-sort | head -10 | xargs -I files cp files .
و البته مک یک انگولک مسخره هم به xargs کرده ولی به هرحال کار می کنه. در واقع ظاهرا دیفالتش یک -L 1 داره! حالا ما ده تا فایل اتفاقی جی پگ داریم:
➜ jpg2png ls 33_ibm7291.jpg IMG_0104.jpg IMG_20140910_090542.jpg IMG_20150101_144039.jpg IMG_20150607_084842.jpg IMG_20150617_210638.jpg IMG_20150721_214643.jpg JungfrauClimbers_EN-US11631578069_1366x768.jpg MaracanaFireworks_EN-US9834580695_1366x768.jpg dual_grass.jpg
حالا کافیه با استفاده از برنامه imagemagick که همیشه نصب داریمش (توی اوبونتو با apt install و در مک با brew install) بریم سراغ درست کردن یک دایرکتوری برای پی ان جی ها، و ساختن خروجی ها با یک حلقه فور که روی هر فایل یک دستور convert اجرا میکنه:
➜ mkdir pngs ➜ for file in *.jpg; do convert $file pngs/$file.png ; done
و همه چیز مرتب شده:
➜ tree zsh: command not found: tree ➜ brew install tree Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> New Formulae exa httpflow jvm-mon libetpan terraform-docs ==> Updated Formulae amazon-ecs-cli g3log lynis paket terraform ats2-postiats geoip macvim ponyc todolist aws-sdk-cpp git-lfs media-info roswell urh awscli github-release mediaconch rtv uwsgi clutter-gst jenkins-lts metabase ruby@2.3 vim convox jfrog-cli-go node ✔ scw vnu crystax-ndk jmxtrans opensc sqlite ✔ fdroidserver khal osmfilter swiftformat fluent-bit kobalt osrm-backend sysdig ==> Deleted Formulae dwarf-fortress fb-adb multirust ==> Downloading https://homebrew.bintray.com/bottles/tree-1.7.0.sierra.bottle.1. curl: (7) Failed to connect to homebrew.bintray.com port 443: Operation timed out Error: Failed to download resource "tree" Download failed: https://homebrew.bintray.com/bottles/tree-1.7.0.sierra.bottle.1.tar.gz Warning: Bottle installation failed: building from source. ==> Using the sandbox ==> Downloading http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz ######################################################################## 100.0% ==> make prefix=/usr/local/Cellar/tree/1.7.0 MANDIR=/usr/local/Cellar/tree/1.7.0 ? /usr/local/Cellar/tree/1.7.0: 8 files, 114.3KB, built in 5 seconds ➜ tree . ├── 33_ibm7291.jpg ├── IMG_0104.jpg ├── IMG_20140910_090542.jpg ├── IMG_20150101_144039.jpg ├── IMG_20150607_084842.jpg ├── IMG_20150617_210638.jpg ├── IMG_20150721_214643.jpg ├── JungfrauClimbers_EN-US11631578069_1366x768.jpg ├── MaracanaFireworks_EN-US9834580695_1366x768.jpg ├── dual_grass.jpg └── pngs ├── 33_ibm7291.jpg.png ├── IMG_0104.jpg.png ├── IMG_20140910_090542.jpg.png ├── IMG_20150101_144039.jpg.png ├── IMG_20150607_084842.jpg.png ├── IMG_20150617_210638.jpg.png ├── IMG_20150721_214643.jpg.png ├── JungfrauClimbers_EN-US11631578069_1366x768.jpg.png ├── MaracanaFireworks_EN-US9834580695_1366x768.jpg.png └── dual_grass.jpg.png 1 directory, 20 files
میبینین که برای کار به مک برگشتم. بعدا دلایلش رو می نویسم ولی خلاصه اش اینه که شرکت استانداردش مک است و تجربه هم می شه. از اونطرف نکته جالبتر اینه که در واقع می بینین وقتی می گیم گنو/لینوکس چقدر تاکیدمون روی بخش گنو زیاده. در اصل این ابزارهای باحال مربوط به پروژه گنو است و در نتیجه سیستم هایی که پایه گنو/یونیکسی دارن هم ازش لذت می برن. مثلا همین مک. و از اونطرف راحت می بینین که چرا مک رو اعصاب می ره، مثلا دستوری به خوبی سورت رو برداشته فلج کرده هرچند که با پروژه فوق العاده هومبرو، تقریبا همه چیزهای مهم لینوکس رو می شه اینطرف هم داشت، به جز یک رابطه کاربری کارا و خوش دست و یه ادیتور فارسی متن محض درست – بعدا در موردش بیشتر حرف می زنیم (: