মূল ডিরেক্টরি অন্তর্ভুক্ত না করে একটি ফাইল জিপ করুন


12

আমার কাছে একটি ফোল্ডার রয়েছে যাতে একাধিক ফাইল রয়েছে

ফোল্ডারের

  • artifact1.app
  • artifact2.ext2
  • artifact3.ext3
  • ...

আমার লক্ষ্য হ'ল এই ফোল্ডারটির বাইরে ফাইলটি জিপ করা (যাতে cdকমান্ড ব্যবহার না করে ) ফোল্ডারটি ডির অন্তর্ভুক্ত না করে।

zip -r ./folder/artifact.zip ./folder/artifact1.app

এই কমান্ডটি চূড়ান্ত জিপ ফোল্ডার dir অন্তর্ভুক্ত। কোন ইঙ্গিত?

সম্পর্কিত প্রশ্ন: ফোল্ডারটি নিজেই অন্তর্ভুক্ত না করে কোনও ফোল্ডারের বিষয়বস্তু জিপ করুন


1
ম্যান পৃষ্ঠাগুলি থেকে মনে হয় কেবল -jএটি প্রয়োগ হবে এবং এটি জিপের মধ্যে সমস্ত ফোল্ডারকে একটি একক মূল-স্তরের ডিরেক্টরিতে সংকুচিত করতে চাই। আপনি যা খুঁজছেন তা নয়, তাই না?
ফিরফক্স

@ ফায়ারফক্স সম্ভবত হ্যাঁ এটি যাচাই করা প্রয়োজন। ধন্যবাদ।
লরেঞ্জো বি

উত্তর:


13

আপনি সকল ফাইল সঞ্চয় করতে চান তাহলে folderএকটি ডিরেক্টরি ইঙ্গিত ছাড়া তাদের নামের অধীনে, আপনি ব্যবহার করতে পারেন -jবিকল্প।

zip -j folder/artifact.zip folder/artifact1.app folder/artifact2.ext2 folder/artifact3.ext3

অথবা

zip -j folder/{artifact.zip,artifact1.app,artifact2.ext2,artifact3.ext3}

আপনার যদি উপ ডিরেক্টরিতে ফাইল থাকে তবে তাদের সংরক্ষণাগারে কোনও ডিরেক্টরি উপাদান থাকবে না, যেমন folder/subdir/fooসংরক্ষণাগার হিসাবে সংরক্ষণাগারে রাখা হবে foo

তবে সম্ভবত ডিরেক্টরিতে পরিবর্তন করা সহজ হবে। এটি হুবহু ধনুর্বন্ধনী পদ্ধতি হিসাবে টাইপ করার প্রায় একই পরিমাণ। আপনি যদি তা করেন, আপনি যদি উপ-ডিরেক্টরিতে ফাইল অন্তর্ভুক্ত করেন তবে যে ডিরেক্টরিটি আপনি বদলেছেন সেগুলি থেকে তাদের আপেক্ষিক পথটি folder/subdir/fooথাকবে , যেমন সংরক্ষণ করা হবে subdir/foo

(cd folder && zip artifact.zip artifact1.app artifact2.ext2 artifact3.ext3)

ইন্টারেক্টিভ ব্যবহারের জন্য, আপনি এইভাবে শেল সমাপ্তি হারাবেন, কারণ শেলটি বুঝতে পারে না যে আপনি যখন zipকমান্ডটি চালাবেন তখন আপনি কোনও ভিন্ন ডিরেক্টরিতে থাকবেন । তার প্রতিকারের জন্য cdপৃথকভাবে কমান্ডটি জারি করুন । পূর্ববর্তী ডিরেক্টরিতে সহজে ফিরে যেতে, আপনি pushdএবং ব্যবহার করতে পারেন popd

pushd folder
zip artifact.zip artifact1.app artifact2.ext2 artifact3.ext3
popd

আপনি যদি একটি জিপ ফাইলে সঞ্চিত পাথের উপর সম্পূর্ণ নিয়ন্ত্রণ চান তবে আপনি প্রতীকী লিঙ্কগুলির একটি বন তৈরি করতে পারেন। অন্যথায় নির্দেশ না দেওয়া পর্যন্ত zipপ্রতীকী লিঙ্কগুলি সংরক্ষণ করবেন না।


আপনাকে উপ-ডিরেক্টরিতে ( folder)) সমস্ত ফাইল স্পষ্টভাবে তালিকাভুক্ত করতে হবে না , আপনি কেবল একটি ওয়াইল্ডকার্ড ব্যবহার করতে পারেন,zip -j folder/*
যাকুব কুকুল

শেল প্রসারণের উপর নির্ভর করার অর্থ ডটফিলস (উদাঃ .profile) সংরক্ষণাগারে অন্তর্ভুক্ত হবে না। পরিবর্তে, বর্তমান ওয়ার্কিং ডিরেক্টরিটি পরিবর্তন করুন এবং .সংরক্ষণাগারভুক্ত করা ফাইল হিসাবে নির্দিষ্ট করুন:cd folder && zip -r ../folder.zip .
শেলডনহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.