একটি subdirectory মধ্যে tar'd ফাইল রাখুন


8

আমার নিম্নরূপ একটি ডিরেক্টরি সেটআপ আছে:

folder_x
file.y
file.z

আমি একটি টারব ফাইল তৈরি করতে চাই যাতে কাঠামোটি বের করা হলে এটি এমন কিছু দেখতে পাবে:

dir_q/folder_x
dir_q/file.y
dir_q/file.z

কিভাবে আমি এই ব্যবহার করে কাজ পেতে পারে tar? রেফারেন্সের জন্য, আমি ব্যবহার করছি বর্তমান কমান্ড হল:

tar -czf archive.tar.gz file.y file.z folder_x

উত্তর:


10

আমি কখনই --transform বিকল্পটি ব্যবহার করি নি, তবে আমি যা করতে চাই তা সংগ্রহ করবো:

tar -czf archive.tar.gz --transform 's,^,dir_q/,' file.y file.z folder_x

ব্যবহার বুঝতে , পরিবর্তে / বিভাজক হিসাবে, তাই আমরা একটি পেছনের স্ল্যাশ যোগ করতে পারেন।


হুম, এটা সঠিকভাবে কাজ করছে বলে মনে হচ্ছে না: file.z - & gt; দ্বারা dirfile.z এবং dirfolder_x। আমি regex সঙ্গে প্রায় খেলতে হবে খুব দেখতে যদি আমি এটা আমি চাই উপায় পেতে পারেন।
Tim Cooper

1
এখানে আমি কীভাবে এটি করি: tar-czf archive.tar.gz --transform এর, ^, dir_q /, 'file.y file.z ফোল্ডার_x Sed আপনার অনুমতিতে ফরোয়ার্ড স্ল্যাশে থাকা অবস্থায় অস্পষ্টতা এড়ানোর অনুমতি দেয়। । সাধারনত আমি বলব আপনি ব্যাকস্ল্যাশের সাথে স্ল্যাশ থেকে পালাতে পারেন, কিন্তু sed (অন্তত, gnu sed) সঠিকভাবে এটি ব্যাখ্যা করে না।
jdb

tar -transform MacOS এ কাজ বলে মনে হচ্ছে না
Alexander Mills

MacOS এ আপনি --transform বিকল্পটি পেতে ম্যাকপোর্টস এবং gnutar ইনস্টল করতে পারেন। অথবা ডাউনলোড করুন & amp; নিজে নিজে কম্পন কর।
Marnix A. van Ammers

1

নতুন ডিরেক্টরি তৈরি করার ক্ষেত্রে আপনি যদি মনে করেন না ...

mkdir dir_q;tar -C $_ -xzvf archive.tar.gz

বিকল্পভাবে, একটি নতুন ডিরেক্টরি তৈরি করুন, সেই ডিরেক্টরিতে ফাইলটিকে অনির্বাচিত করুন, তারপরে এটি প্যারেন্ট ডিরেক্টরি থেকে পুনঃ-টারটি বের করুন যাতে এটির নামটি এক্সট্র্যাক্ট সংস্করণে অন্তর্ভুক্ত করা যায়। এই ভাবে আপনি কিছু সুপার দীর্ঘ আহ্বান মনে রাখবেন না।

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