টার্বল নিষ্কাশন করার সময় লক্ষ্য ডিরেক্টরি তৈরি করুন


25

আমি কি mkdir -pআমার টার কমান্ডের মধ্যে একটি অস্তিত্বহীন টার্গেট ডিরেক্টরিটি সংজ্ঞায়িত করতে পারি এবং টার কি আমার জন্য ডিরেক্টরিটি তৈরি করতে পারে তার অনুরূপ কোনও লক্ষ্য ডিরেক্টরি তৈরি করা কি সম্ভব ?

আমি জানি যে আমি ব্যবহার করে কোনও ডিরেক্টরিতে আউটপুট পুনর্নির্দেশ করতে পারি tar -C /target/dir, তবে লক্ষ্য ডিরেক্টরিটি অস্তিত্বহীন থাকলে এটি কাজ করে না।


4
যদি এটি সম্ভব না হয় তবে আপনি সর্বদা শেল ওরফে তৈরি করতে পারেন।
n0pe

উত্তর:


38
mkdir -p /target/dir && tar -C /target/dir

3
কোন চামচ খাওয়ানো, সোজা এবং বিন্দু।
আমাদো মার্টিনেজ

10
নাবালক পরিবর্তনের প্রস্তাব দিয়েছে:mkdir -p /target/dir && tar -C $_
মেলভিলে

@MarkMelville আমাদের কাছে বর্ণনা কি $: _ এখানে ডি অনুমিত
Suhayb

@ সুহাইব বাশের $_একটি বিশেষ প্যারামিটার যা পূর্ববর্তী কমান্ডের সর্বশেষ যুক্তিতে প্রসারিত।
কনসেপ্টরাট

13
tar -xvf bash.html_node.tar.gz --one-top-level

টার কমান্ডের ম্যান পৃষ্ঠা থেকে

--one-top-level[=DIR]

    সমস্ত ফাইল ডিআইআর , বা, তর্ক ছাড়াই ব্যবহৃত হলে সংরক্ষণাগারের মূল নাম দ্বারা চিহ্নিত সাব-ডাইরেক্টরিতে (মাইনাস স্ট্যান্ডার্ড সংকোচনের প্রত্যয় যা দ্বারা স্বীকৃত --auto-compress) এগুলি বের করুন ।

----- পরীক্ষা

পরীক্ষা 1

tar zxvf ../aaa.tgz --one-top-level
aaa/
aaa/222
aaa/111

tree aaa
aaa/
├── 111
└── 222

// যদি tgz নাম সংরক্ষণাগারটির root_dir হিসাবে একই, অন্য কোনও প্রভাব নেই

পরীক্ষা 2

mv ../aaa.tgz ../bbb.tgz

tar zxvf ../bbb.tgz --one-top-level
aaa/
aaa/222
aaa/111

tree bbb
bbb
└── aaa
    ├── 111
    └── 222

// tgz নামটি সংরক্ষণাগারটির রুট_ডির মতো না হলে একটি শীর্ষ স্তরের দির তৈরি করুন


3
জিএনইউ টর দরকার? ম্যাক ডিফল্ট বিএসডি টারে এই বিকল্প নেই।
কার্টিস ইয়ালাপ

1
হ্যাঁ, এটি আরও স্পষ্টভাবে উল্লেখ করা উচিত।
kcrisman

5

এটি আমার আরও অর্থবোধ করে: mkdir -p /create/folder && tar -zxf haroopad-v0.13.0_x64.tar.gz -C /create/testfolder

mkdirফোল্ডারটি তৈরি করে যদিও আমি -pস্যুইচটি বেশ বুঝতে পারি না । &&আপনাকে একটি দ্বিতীয় কমান্ড কার্যকর করতে দেয়। আমি সাধারণত টার স্যুইচ ব্যবহার করেছি তবে শেষে -Cডিরেক্টরিগুলি পরিবর্তন করতে এবং সেই জায়গাতে প্রয়োজনীয় উত্তোলনের জন্য ব্যবহৃত হয়।

রেফারেন্স: এক্সট্র্যাক্ট-ফাইলস-ইন-সংরক্ষণাগার-টার-জিজেড-থেকে-নতুন ডিরেক্টরি-নাম-সংরক্ষণাগার


2
ডিরেক্টরি ইতিমধ্যে উপস্থিত থাকলে -p সুইচ ত্রুটি ছুঁড়ে ফেলবে না।
ডেভিড 21

@ ডেভিড এটি কোনও শীর্ষস্থানীয় অ-বিদ্যমান ডিরেক্টরিও তৈরি করবে, যেমন এটি /createউপস্থিত না থাকলে এটি তৈরি করবে।
আন্তোনিও পেরেজ

1

আপনি যদি তৈরি করার পাথগুলি জানেন না ...
টার ফাইল থেকে প্রয়োজনীয় পাথগুলি পান তবে সেগুলি তৈরি করুন ...

for P in \`tar tvf tarfile.tar |tr -s [:space:] |cut -d' ' -f6\`; do  
    C=\`echo "${P: -1}"\`  #get the last character  
    if [ $C = '/' ]; then  
        echo "Found directory: $P"  
        mkdir -p $P  
    fi  
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.