টিআরআরআর্কাইভ থেকে নিয়মিত এক্সপ্রেশন ব্যবহার করে কীভাবে ফাইলগুলি বাদ দেওয়া যায়?


10

আমার একটি সহজ প্রশ্ন আছে, তবুও আমি উত্তরটি খুঁজে পেতে বা সমাধান করতে পারছি না। আমি একটি টার সংরক্ষণাগার তৈরি করতে চাই, তবে আমি নিয়মিত অভিব্যক্তি ব্যবহার করে এর থেকে কিছু ফাইল বাদ দিতে চাই।

বাদ দেওয়ার ফাইলটির উদাহরণ হ'ল: 68x640X480.jpg

আমি ভাগ্য ছাড়াই এটি চেষ্টা করেছি:

tar cvf test.tar --exclude=[0-9]+x[0-9X]+\.jpg /data/foto

কেউ সাহায্য করতে পারেন?

উত্তর:


11

তোমার মত কিছু অতিরিক্ত সরঞ্জাম ব্যবহার করতে পারেন findএবং egrep:

find directory/ -type f -print | egrep -v '[0-9]+x[0-9X]+\.jpg' | tar cvfz directory.tar.gz -T -

উল্লিখিত পদ্ধতির অপূর্ণতা হ'ল এটি সম্ভাব্য সমস্ত ফাইলের নামের জন্য কাজ করবে না। আরেকটি সুযোগ হ'ল অন্তর্নির্মিত কার্যকারিতা বাদ দেওয়া tar:

tar -czvf directory.tar.gz --exclude='*x*X*.jpg' directory

দুর্ভাগ্যক্রমে দ্বিতীয় পদ্ধতিটি নিয়মিত প্রকাশের সাথে কাজ করে না, তবে কেবল ওয়াইল্ডকার্ড দিয়ে।


ধন্যবাদ, আমি এটিই খুঁজছিলাম কোন ফাইলের নামগুলি কাজ করবে না সে সম্পর্কে দয়া করে একটি নোট তৈরি করতে পারেন? যেমন কোন অক্ষর সমন্বিত?
ফ্রডিক

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


0

আপনার সিপিও চেষ্টা করা উচিত

http://cybertiggyr.com/cpio-howto

এটি ফাইল তালিকা থেকে পড়ে এবং সংরক্ষণাগারটি করে। আপনি তৈরি করতে পারেন একটি ফাইল তালিকা ব্যবহার করে sed নিচে দেওয়া চাই।

ls |sed   '/[0-9]*x[0-9]*X.*/d' >/tmp/files

তারপরে আপনি সিপিওতে ইনপুট হিসাবে এটি ব্যবহার করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.