লিনাক্স / শেল: একটি ফাইলের পরিবর্তিত টাইমস্ট্যাম্প তুলনামূলকভাবে পরিবর্তন করবেন?


20

আমার ক্যামেরা সেই ফাইলগুলিতে টাইমস্ট্যাম্পগুলির মতো IMG_1234.JPGএবং ফাইল তৈরি MVI_1234.AVIকরে। দুর্ভাগ্যক্রমে সময়টি সঠিকভাবে সেট করা হয়নি এবং টাইমস্ট্যাম্পগুলি বন্ধ রয়েছে।

আমি ডিস্কে ফাইলটির টাইমস্ট্যাম্প সেট করতে চাই। (EXIF ডেটা নয়)।

প্রস্তাবিত অ্যালগরিদম:

1 read file's modify date
2 add delta, i.e. hhmmss (preferred: change timezone)
3 write new timestamp

এটি করার কোনও সহজ উপায় আছে? সম্ভবত কেউ যুগের সময় (সেকেন্ড পরে) ব্যবহার করে গণনা সহজ করতে পারে এবং একটি শেল স্ক্রিপ্ট চাবুক করতে পারে।


মূল শব্দটি মাইটাইম। যাইহোক, আমি এখনও কোনও সমাধান খুঁজে পাইনি, কারণ ফাইলের এমটাইমের সাথে সম্পর্কিত
সূচি

উত্তর:


38

touch এটি করতে পারেন:

 $ ls -l something
-rw-rw-r-- 1 tgs tgs 0 2010-03-22 16:03 something
 $ touch -r something -d '-1 day' something 
 $ ls -l something 
-rw-rw-r-- 1 tgs tgs 0 2010-03-21 16:03 something

http://linux.about.com/library/cmd/blcmdl_touch.htm

মাইটাইম পরিবর্তন করতে, যুক্ত করুন --time=mtime


হ্যাঁ, তবে এটি আপনার বর্তমান সিস্টেম সময়ের সাথে সম্পর্কিত, ফাইলের নয় .. ধন্যবাদ, যদিও ..
সূচি

1
আমি যখন প্রথম উত্তর দিয়েছিলাম, হ্যাঁ, তবে আমি উত্তরটি সম্পাদনা করেছি। আপনি যখন -r fileবিকল্পটি ব্যবহার করেন , তখন এটি সেই ফাইলের সাথে সম্পর্কিত হয়। সুতরাং আপনার যদি সময়টি একই রকমের ফাইলের সাথে সম্পর্কিত হয় তবে আপনি যা চান তা পেতে পারেন।
23:55

উজ্জ্বল, আপনাকে ধন্যবাদ। ঠিক আমি যা খুঁজছিলাম।
আর্টেম রাশাকোভস্কিই

@ রিচার্ডস্ক, কৌতূহলের ঠিক বাইরে, এই পরিবর্তনটি কীভাবে ফাইলটির একটি ফরেনসিক বিশ্লেষণে প্রভাব ফেলবে? আপনি যদি কোনও ফাইল পরিবর্তন করে থাকেন তবে তার পরিবর্তিত তারিখটি পূর্বের মানটিতে আবার সেট করে রাখেন, তবে এটি কি ইনোড বা অন্য ফাইলসस्टम মেটাডেটাতে সনাক্তযোগ্য হবে? জার্নালিং এই বিশ্লেষণে প্রভাব ফেলবে?
ফ্রাঙ্ক থমাস

@ ফ্র্যাঙ্ক থমাস, দুঃখিত, আমার কোনও ধারণা নেই!

11

উপরের সংমিশ্রণ, যদি এএম / প্রধানমন্ত্রী ভুল হয় ...

ফাইল টাইম স্ট্যাম্পগুলি সঠিক করুন:

#!/bin/sh
for i in all/*; do
  touch -r "$i" -d '-12 hour' "$i"
done

তারপরে সংশোধিত সময় স্ট্যাম্পে jpg ফাইলগুলিতে EXIF ​​তথ্য আপডেট করুন:

$ jhead -dsft *.jpg

আপনার ক্যামেরায় সময় নির্ধারণ করতে ভুলবেন না।


2

সাব-ডাইরেক্টরিতে সমস্ত ফাইলের উপরে পুনরাবৃত্তি ঘটে: ফাইলগুলি যুগের / সেকেন্ডে ইউনিক্স সময় পেতে স্ট্যাট ব্যবহার করুন, এমটাইমের জন্য নতুন তারিখ হিসাবে যোগফলটিকে স্পর্শ করুন এবং ফাইলটিতে লিখুন

#!/bin/sh
for i in all/*; do
  touch -m -d "$(stat -c %y "$i") + 3600 sec" "$i"
done

পাইথনীয় পদ্ধতির জন্য /programming/1158076/implement-touch-using-python দেখুন


কেবল স্পষ্ট করে বলার জন্য, এর অর্থ হল যে কর্টিলের তারিখ পার্সার কেবল আপেক্ষিক, শব্দার্থক সময়কেই গ্রহণ করে না তবে এটি গণনা করতে পারে! ডকুমেন্টেশনে ( gnu.org/software/coreutils/manual/… ) তে আমি তথ্যটি খুঁজে পাইনি বলে কেবল এটিকে নির্দেশ করেছিলাম [এটি আসলে সেখানে রয়েছে: "আপেক্ষিক আইটেমগুলি একটি তারিখ সামঞ্জস্য করে (বা বর্তমান তারিখ না হলে) এগিয়ে বা পিছনে। আপেক্ষিক আইটেমগুলির প্রভাব জমে ""]
সূচি

2

আমি ওএস এক্সে একই জিনিসটি করছি, এবং স্পর্শের বাক্য গঠনটি এখানে কিছুটা পরিবর্তিত হয়।

আমি ব্যাবহার করছি:

touch -r "filename" -A '013007' "filename"

এটি মূল পরিবর্তিত সময়ের তুলনায় + 1 ঘন্টা 30 মিনিট 7 সেকেন্ড সামঞ্জস্য করবে। '-013007'সময় ফিরিয়ে দেওয়ার জন্য


একটি পার্শ্ব নোট: যদিও কিছুই চেয়ে ভাল, এই বাক্য গঠনটি স্ক্রিপ্টিং জন্য একটি দুঃস্বপ্ন।
tuomassalo

ঠিক এটিই আমি খুঁজছিলাম (আরটিএফএম: ডি থেকে খুব অলস)। ধন্যবাদ!
মিশেল ডাল'আগটা

1

লিনাক্স, শেষ পরিবর্তিত টাইমস্ট্যাম্প পরিবর্তন করতে স্পর্শ ব্যবহার করে:

এখনকার টাইমস্ট্যাম্প সহ একটি ফাইল তৈরি করুন:

el@apollo:~$ touch myfile.txt
el@apollo:~$ ll myfile.txt
-rw-rw-r-- 1 el el 0 Aug 22 09:25 myfile.txt

2 ঘন্টা আগে টাইমস্ট্যাম্প পরিবর্তন করুন:

el@apollo:~$ touch -d "2 hours ago" myfile.txt
el@apollo:~$ ll myfile.txt
-rw-rw-r-- 1 el el 0 Aug 22 07:25 myfile.txt

টাইমস্ট্যাম্পটি 200 ঘন্টা আগে হওয়ার জন্য পরিবর্তন করুন:

el@apollo:~$ touch -d "200 hours ago" myfile.txt
el@apollo:~$ ll myfile.txt
-rw-rw-r-- 1 el el 0 Aug 14 01:25 myfile.txt

30 দিন আগে টাইমস্ট্যাম্পটি পরিবর্তন করুন:

el@apollo:~$ touch -d "30 days ago" myfile.txt
el@apollo:~$ ll myfile.txt
-rw-rw-r-- 1 el el 0 Jul 23 09:25 myfile.txt
el@apollo:~$

শেননিগানদের জন্য, ভবিষ্যতে শেষ পরিবর্তনিত তারিখটি সেট করুন:

el@apollo:~$ touch -d "-400000 days ago" myfile.txt
el@apollo:~$ ll myfile.txt
-rw-rw-r-- 1 el el 0 Oct 21  3012 myfile.txt

স্পষ্টতই, আমরা আজকের মত 3012 এর মতো পার্টি করব।


সর্বশেষ "ভবিষ্যতের" উদাহরণস্বরূপ, বিয়োগ ( -) বিগত দিনে 400,000 দিন যেতে স্পর্শকে বলে না এবং তবুও এটি ভবিষ্যতে শেষ হয়? বা অপেক্ষা করুন, আপনি কি তারিখটিকে দ্বিগুণ-নেতিবাচক করতে বলছেন, বিয়োগ + পূর্ববর্তী = ভবিষ্যত ...? ইয়ার
মেটে

0

জেথ ব্যবহার করুন:

http://www.sentex.net/~mwandel/jhead/usage.html

এক্স: শিরোনামে সঞ্চিত সময়টি h: মিমি পিছনে বা এগিয়ে দিয়ে সামঞ্জস্য করুন। ক্যামেরায় সময় নির্ধারণের সময়, যেমন সময় অঞ্চলগুলি ভ্রমণ করার পরে, বা দিবালোকের সঞ্চয়ের সময় পরিবর্তন করার সময় যখন ছবি তোলা যায় তখন কার্যকর।


টিপটির জন্য ধন্যবাদ, এটি এক্সিফ এবং এক্সিফটুলের মতো এবং ডিজিকমের "তারিখ এবং সময় সামঞ্জস্য করুন" বৈশিষ্ট্যের মতো - তবে আমি ফাইলটির সিস্টেমের তারিখটি পরিবর্তন করতে চাই। আর একটি সমস্যা হ'ল আমার স্মার্ট ওএস স্থানীয় সময়কে ফ্লাইতে রূপান্তরিত করে এবং ডিএসটি এক সময় অঞ্চলে লাথি মেরেছে :-)
সূচকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.