কোনও এফটিপি সাইটে আপলোড করার সময়, আসল ফাইল তৈরির তারিখটি হারিয়ে গেছে বলে মনে হয় এবং পরিবর্তে আমি আপলোডের তারিখটি পাই। তবে ফাইলের এক্সিফ ডেটা সঠিক। Exif তারিখ থেকে তৈরি তারিখ পরিবর্তন করার জন্য কি ব্যাচের কোনও সরঞ্জাম আছে?
কোনও এফটিপি সাইটে আপলোড করার সময়, আসল ফাইল তৈরির তারিখটি হারিয়ে গেছে বলে মনে হয় এবং পরিবর্তে আমি আপলোডের তারিখটি পাই। তবে ফাইলের এক্সিফ ডেটা সঠিক। Exif তারিখ থেকে তৈরি তারিখ পরিবর্তন করার জন্য কি ব্যাচের কোনও সরঞ্জাম আছে?
উত্তর:
এক্সআইএফ হ্যান্ডলিং সরঞ্জামটির জন্য exiv2
এটি একটি বিল্টিন বিকল্প রয়েছে:
exiv2 -T rename image.jpg
mtime
EXIF মেটাডেটাতে সঞ্চিত তারিখের জন্য সর্বশেষ ফাইল সংশোধন করার সময় সেট করে ।
আপনি তৈরির সময়টি ব্যবহার করার জন্য বলেছিলেন - তবে এটি ইউনিক্সের মতো সিস্টেমে ব্যবহৃত হয় না - এবং এর জন্য ভাল কারণ রয়েছে: /unix/27297/why-doesnt-nix-keep-track -of-ফাইল-সৃষ্টি-সময়
আমি নিশ্চিত যে আপনি সময় তৈরির সময়টি সময়টি আসলে তা mtime
- কোনও সমস্যা নেই।
থেকে man exiv2
:
NAME
exiv2 - Image metadata manipulation tool
SYNOPSIS
exiv2 [options] [action] file ...
DESCRIPTION
exiv2 is a program to read and write Exif, IPTC and XMP image metadata and image com‐
ments. The following image formats are supported:
[ ... ]
mv | rename
Rename files and/or set file timestamps according to the Exif create time‐
stamp. Uses the value of tag Exif.Photo.DateTimeOriginal or, if not
present, Exif.Image.DateTime to determine the timestamp. The filename for‐
mat can be set with -r fmt, timestamp options are -t and -T.
[ ... ]
-T Only set the file timestamp according to the Exif create timestamp, do not
rename the file (overrides -k). This option is only used with the 'rename'
action. Note: On Windows you may have to set the TZ environment variable for
this option to work correctly.
-t
বিপরীতে করতে
বিকল্প দেখুন ।
-t
। প্রকৃতপক্ষে, এটি আসলে কী -T
করে তার একটি সুপারসেট করে বলে মনে হচ্ছে।
আপনি যদি সিপিএএন থেকে এক্সটিফটল ইনস্টল করেন তবে আপনি নিম্নলিখিত ফাইলটি চালাতে পারবেন, ধরে নিবেন যে আপনার সমস্ত ফাইল "সমস্ত" নামক ডিরেক্টরিতে রয়েছে
#!/bin/sh
for i in all/*; do
SPEC=`exiftool -t -s -d "%Y-%m-%d %H:%M:%S" -CreateDate "$i"`
read X DATE <<<${SPEC}
echo "$i:$DATE"
touch -d "$DATE" "$i"
done
exiftool
ধরে নেওয়া, 'ভোলকার সিগেল' দ্বারা উল্লিখিত হিসাবে, আপনি সম্ভবত মাইটাইম বলতে চাইছেন, আমি সহজভাবে বিল্ট ফাংশন ব্যবহার করব ..
মত:
$ exiftool "-DateTimeOriginal>FileModifyDate" test.jpg
এটি "এক্সিফ ফিল্ড" ডেটটাইমঅরজিনাল "তথ্য গ্রহণ করবে এবং ফাইল" টেস্ট.জেপিজি "ফাইলটির পরিবর্তিত তারিখ / সময় তথ্য সেট করতে এটি ব্যবহার করবে।
$ ls -la test.jpg
-rw-r-----@ 1 user 18329968 2432451 14 Out 17:57 test.jpg
$ exiftool -DateTimeOriginal test.jpg
Date/Time Original : 2015:10:09 13:29:58
$ exiftool "-DateTimeOriginal>FileModifyDate" test.jpg
1 image files updated
$ ls -la test.jpg
-rw-r-----@ 1 user 18329968 2432451 9 Out 13:29 test.jpg
এটি jhead
কমান্ড ব্যবহার করেও তৈরি করা যেতে পারে :
$ jhead -ft file.jpg
-dsft
। -ft
বিপরীত না।
এক্সিফটুল বেশিরভাগ এক্সআইএফ তথ্য পড়তে ও পরিচালনা করতে পারে, যার মধ্যে তারিখ / সময়ের মূল সংগ্রহ বা ডেটা এক্সআইএফ ট্যাগ তৈরি করা। আপনি ফাইলগুলির নাম পরিবর্তন করতে বা তাদের টাইমস্ট্যাম্পগুলি পরিবর্তন করতে এই তথ্যটি ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:
find -name '*.jpg' | while read PIC; do
DATE=$(exiftool -p '$DateTimeOriginal' $PIC |
sed 's/[: ]//g')
touch -t $(echo $DATE | sed 's/\(..$\)/\.\1/') $PIC
done
এটি বর্তমান ডিরেক্টরিতে সমস্ত জেপিজি ফাইলগুলি সন্ধান করবে এবং টাইমস্ট্যাম্পগুলি আপডেট করবে।
আপনি যদি সেই তারিখের উপর ভিত্তি করে এই ফাইলগুলিকে একটি নামও দিতে চান (এটি কাজে আসে) তবে লাইনের mv -i $PIC $(dirname $PIC)/$DATE.jpg
আগেও যুক্ত করুন done
।