ফাইলের তারিখের তুলনা করুন


1

কখনও কখনও আমি যখন বুট করি তখন আমার সিস্টেমটি জরুরি অবস্থার মধ্যে চলে যায়।

আমি তখন কোনও চিত্র পুনরুদ্ধার করতে ক্লোনজিলা ব্যবহার করি।

সাধারণত চিত্রটি বর্তমান তারিখের চেয়ে পুরনো।

এটি একটি ব্যাকআপ স্ক্রিপ্টের অংশ যা একটি স্টার্টআপ প্রোগ্রাম হিসাবে চলে।

cd /home/andy/bin/
zip -u -q Ubuntu_Scripts.zip *.sh *.rb *.c *.py *.txt
cp -u Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/
cp -u Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB5/Emergency_Backup/

এটি তখন আমার জিপ ফাইলটিকে প্রকৃতপক্ষে পুরানোগুলির সাথে ওভাররাইট করে।

আমি ভেবেছিলাম যে জিপ অপারেশনের আগে আমি যদি ফাইলের তারিখগুলি তুলনা করতে পারি তবে আমি ওভাররাইটটি আটকাতে পারি।

আমি এই চেষ্টা করেছিলাম।

file1time=`stat -c %Y /home/andy/bin/Ubuntu_Scripts.zip`

file2time=`stat -c %Y /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/Ubuntu_Scripts.zip`

if [ "$file1time" -ot "$file2time" ]
then
 echo "File is older. "
fi     

উত্তর:


3

rsyncপরিবর্তে ব্যবহার করুন cpএবং আপনি --updateপতাকাটি ব্যবহার করতে পারেন যা আপনি কেবলমাত্র নতুন ফাইল অনুলিপি করার সময় আপডেট হবে।

cd /home/andy/bin/
zip -u -q Ubuntu_Scripts.zip *.sh *.rb *.c *.py *.txt
rsync -av --update Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/
rsync -av --update Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB5/Emergency_Backup/

2

আপনার কোড -otযেখানে এটি ব্যবহার করা উচিত ব্যবহার করে -lt। নীচে উদাহরণ দেখুন।

#!/bin/bash

file1time=`stat -c %Y /home/niclas/dbat/INSTALL.txt`

file2time=`stat -c %Y /home/niclas/dbat/README.txt`

if [ "$file1time" -lt "$file2time" ]
then
    echo "INSTALL.txt is older."
else
    echo "README.txt is older."
fi   
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.