ফাইন্ড কমান্ডটি ব্যবহার করে .sql এবং .sql.gz ফাইলগুলি সন্ধান করুন


1

আমার কাছে একটি শেল স্ক্রিপ্ট কোড রয়েছে যা .sql.gzফাইলগুলি সন্ধান করে এবং সেগুলি সরিয়ে দেয়:

find $Dir -type f -mtime $Time -name \*sql.gz | while read file
do
    echo "Earlier $file will be moved to different folder." >> $Path_Log_File
    mv -f $file $Path_Folder
done

এক্সটেনশনের সাথে এখন আমার আরও কয়েকটি ফাইল রয়েছে .sqlযাতে আমি কীভাবে আমার উপরের কোডটি সংশোধন করতে পারি তাই এতে এই ফাইলটির এক্সটেনশনটিও অন্তর্ভুক্ত রয়েছে। ধন্যবাদ।

উত্তর:


3

একটি "বা" (-o) অপারেটর অফার সন্ধান করুন:

find $Path_Backup_Dir -type f -mtime $Time \( -name \*sql.gz -o -name \*.sql \)

এক্সপ্রেশনগুলির মধ্যে ডিফল্ট অপারেটর হ'ল "এবং" (-এ)। যেহেতু "এবং" এর তুলনায় "বা" উচ্চতর অগ্রাধিকার রয়েছে তাই সঠিক যুক্তি অর্জনের জন্য আমাদের দুটি "-নাম" এক্সপ্রেশনকে একসাথে গ্রুপ করতে প্যারেন্স ব্যবহার করতে হবে। শেলগুলি সাধারণত পেরেনদের বিশেষভাবে ব্যবহার করে, তাই তাদের রক্ষা করার জন্য আমি তাদের পিছনে ফেলে পালিয়ে এসেছি।

বিকল্পভাবে, আপনি একটি নিয়মিত প্রকাশ করতে পারেন:

find $Path_Backup_Dir -type f -mtime $Time -regex '.*\.(sql|sql.gz)'

আপনার এটিও লক্ষ্য করা উচিত যে আপনার সন্ধান / পঠন কমান্ড পাইপলাইন বিশেষ নামের (নেতৃস্থানীয় স্পেস ট্রেলিং স্পেসস, নিউলাইনস ইত্যাদি) ফাইলগুলিতে ভাল প্রতিক্রিয়া জানায় না। উদাহরণস্বরূপ, এই সমস্যাটি হস্তান্তর করার উপায়গুলির জন্য এই উইকিটি দেখুন ।


2

কেবল "-অর" অপারেটরটি ব্যবহার করুন:

#Find and Move backup files older than the time constraint defined
find $Path_Backup_Dir -type f -mtime $Time \( -name *sql.gz -or -name *sql \) | while read file
do
    echo "Earlier Backup $file will be moved to archive folder." >> $Path_Log_File
    mv -f $file $Path_Mysql_Archive
done

আপনি একটি একক আদেশ দিয়ে সব করতে পারেন:

find $Path_Backup_Dir -type f \( -name *.sql -or -name *.sql.gz \) -exec mv -f -v {} /tmp/test2 \; >> $Path_Log_File

এটি ত্রুটি দেয়:find: paths must precede expression: 01-09-2013.tar.gz Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
তরুন

আপনার পথে কি স্থানের অক্ষর রয়েছে? তাদের 'Escape' এড়িয়ে চলুন বা ডাবল উক্তি ব্যবহার করুন, "$ পথ_ব্যাকআপ_ডির" সন্ধান করুন
কোয়ান্টিন

না এটির মতো কোনও স্থানের অক্ষর নেই /backup/dump/database/11-12-2013.sqlfor
তরুণ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.