tar -tf filename.tar
folder1/file
folder1/name
[...]
আমি বের করে আনতে চাই ফাইল এবং নাম , এর folder2 । এটি কি ওয়ান-লাইনার হিসাবে করা যায়?
tar -tf filename.tar
folder1/file
folder1/name
[...]
আমি বের করে আনতে চাই ফাইল এবং নাম , এর folder2 । এটি কি ওয়ান-লাইনার হিসাবে করা যায়?
উত্তর:
ব্যবহার করুন -C
এবং --strip-components
(দেখুন man tar
)।
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xzf FILENAME -C FOLDER --strip-components=1
-C
পতাকা অনুমান একটি ডিরেক্টরি জায়গা আগে থেকেই তাই আলকাতরা ফাইলের বিষয়বস্তু তা সম্প্রসারিত করা যেতে পারে। অতএব mkdir FOLDER
।
--strip-components
পতাকা যখন একটি আলকাতরা ফাইল স্বাভাবিকভাবেই একটি ফোল্ডারের মধ্যে নিজেই প্রসারিত করবে বলা যাক, GitHub যেখানে এটি উদাহরণ মতো ব্যবহার করা হয় repo-name-master
ফোল্ডার। অবশ্যই আপনার এখানে তৈরি প্রথম স্তরের ফোল্ডারটির প্রয়োজন হবে না তাই আপনার --strip-components
জন্য 1
স্বয়ংক্রিয়ভাবে সেই প্রথম ফোল্ডারটি সরিয়ে ফেলা হবে। বৃহত্তর সংখ্যাটি সেট করা হয় গভীর নীড়যুক্ত ফোল্ডারগুলি সরানো হয়।
আপনি --transform
আরও কিছুটা নমনীয়তার জন্য বিকল্পটিও ব্যবহার করতে পারেন । এটি যে কোনও এসড রিপ্লেসমেন্ট (গুলি) অপারেশন গ্রহণ করে।
উদাহরণস্বরূপ, আমি এইভাবে একটি নতুন ডিরেক্টরিতে একটি লিনাক্স টারবল বের করি যাতে আমি কোনও প্যাচ প্রয়োগ করতে পারি:
tar -xjf linux-2.6.38.tar.bz2 --transform 's/linux-2.6.38/linux-2.6.38.1/'
man tar
। স্পট করেনি--strip-components
। দুর্দান্ত একটি