প্রথম ডিরেক্টরি ছাড়াই উত্তরযোগ্য এক্সট্রাক্ট


29

জবাবদিহিতে একটি tar.gz ফাইলটি বের করার সময় আমি প্রথম ডিরেক্টরিটি শেষ করি

- name: Extract archive
  unarchive: src=file.tar.gz
             dest=/foo/bar

এর ফলশ্রুতিতে /foo/bar/bar-version-someFirstLevelFolder/contentOfArchive আমি কীভাবে এই অতিরিক্ত স্তরের স্তরক্রম তৈরি করা রোধ করতে পারি?


প্রাসঙ্গিক নাও হতে পারে তবে আমি জানি আপনি মাঝে মাঝে গন্তব্য ডিরেক্টরিতে একটি পিছনে স্ল্যাশ যোগ করার ক্ষেত্রে সতর্কতা অবলম্বন করা উচিত। এটা কি কোনও সাহায্যে আসে?
সসকোড

উত্তর:


40

স্ট্রিপ করার জন্য bar-version-someFirstLevelFolderআপনাকে --strip-components=1বিকল্পটি ব্যবহার করতে হবে tar। সুতরাং আপনার প্লেবুক মত দেখতে হবে

- name: Extract archive
  unarchive:
    src: file.tar.gz
    dest: /foo/bar
    extra_opts: [--strip-components=1]

1
এটি সঠিক উত্তর বলে মনে হচ্ছে তবে বর্তমানে এটি ক্রাশের কারণ হতে পারে। এই বাগের প্রতিবেদনটি দেখুন: github.com/ansible/ansible/issues/29657 একটি মধ্যবর্তী সমাধান পিতামাতার ডিরেক্টরিতে অবতীর্ণ হতে হবে এবং তারপরে একটি হবেcommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption

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