GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Memutar Semua Gambar Dalam Direktori Dengan Imagemagick?

Saya ingin memutar semua gambar dalam direktori yang cocok dengan suatu pola.

Sejauh ini saya memiliki:

for file in `ls /tmp/p/DSC*.JPG`; do
  convert $file -rotate 90 file+'_rotated'.JPG
done

tapi itu tidak memberikan hasil?

Jawaban yang Diterima:

Ada beberapa masalah dengan kode Anda. Pertama-tama, Anda menguraikan ls yang merupakan Ide Buruk. Anda juga perlu merujuk ke variabel sebagai $file seperti yang Anda tunjukkan dan Anda juga harus mengutipnya agar tidak pecah spasi. Anda mendeklarasikan num tetapi tidak pernah digunakan. Cara yang lebih aman adalah:

find /tmp/p/ -name "DSC*.JPG" | while IFS= read -r file; do
  convert "$file" -rotate 90 "$file"_rotated.JPG
done

Ini akan tetap bermasalah jika file Anda berisi baris baru tetapi setidaknya tidak akan rusak jika jalur Anda berisi spasi.

Jika semua file berada di direktori yang sama, itu dapat disederhanakan lebih lanjut menggunakan globbing. Anda juga dapat menggunakan perluasan parameter untuk membuat foo_rotated.JPG1 bukannya foo.JPG_rotated.JPG :

for file in /tmp/p/DSC*.JPG; do
  convert "$file" -rotate 90 "${file%.JPG}"_rotated.JPG
done

Linux
  1. Cara Menghapus Akun Pengguna dengan Direktori Rumah di Linux

  2. Cara Menginstal ImageMagick di Amazon Linux

  3. Tip Singkat:mengonversi gambar pada baris perintah dengan ImageMagick

  1. Bagaimana mengelola pengguna dengan useradd di linux

  2. Bagaimana Cara Menghapus Semua File Dengan Ekstensi Tertentu Di Folder Tertentu?

  3. Bagaimana Cara Menginstal Ulang Semua Paket yang Terinstal Dengan Zypper?

  1. Bagaimana cara menggunakan regex dengan perintah find?

  2. Bagaimana cara menggunakan gambar buruh pelabuhan lokal dengan Minikube?

  3. Bagaimana cara tar file dengan urutan yang diurutkan?