একটি জিপ করা ফোল্ডারে আনজিপড ফাইল যুক্ত করা হচ্ছে


32

আমি ইতিমধ্যে একটি জিপ করা ফোল্ডার বলার আগে থেকে আনজিপড ফাইল যুক্ত করার চেষ্টা করছি new folder.zipzip -r new folder.zipতাদের কাছে কিছু আনজিপড ফাইল যুক্ত করার পরে কি ব্যবহার করা সম্ভব ? এই কমান্ডটি ফোল্ডারটি সংকুচিত করবে? এটি করার কোনও বিকল্প আছে কি?


আপনি এটি পাইপ করতে পারেন, মূল ফাইলটি আনজিপ করুন তারপরে আপনি কীভাবে একেবারে নতুন ফাইল তৈরি করবেন তা সম্পূর্ণ সামগ্রীতে জিপ আপ করুন। আমি নিশ্চিত নই আপনি কীভাবে এটি একটি একক আদেশ দিয়ে করবেন।
ইউনিক্সিমিয়

উত্তর:


44

আপডেট ফ্ল্যাগ ব্যবহার করুন: -u

উদাহরণ:

zip -ur existing.zip myFolder

এই কমান্ডটি সংক্ষিপ্ত করে myFolder(এবং এর সামগ্রীগুলি) যুক্ত করবে existing.zip


উন্নত ব্যবহার:

আপডেট ফ্ল্যাগটি আসলে বিদ্যমান ফাইলগুলির সাথে আগত ফাইলগুলির সাথে তুলনা করে এবং হয় নতুন ফাইল যুক্ত করবে, বা বিদ্যমান ফাইলগুলি আপডেট করবে।

অতএব, আপনি যদি জিপ ফাইলের মধ্যে একটি নির্দিষ্ট সাব-ডাইরেক্টরি যুক্ত / আপডেট করতে চান তবে উত্সটি পছন্দসই হিসাবে আপডেট করুন এবং তারপরে -uপতাকাটি সহ পুরো উত্সটিকে পুনরায় জিপ করুন । শুধুমাত্র পরিবর্তিত ফাইলগুলি জিপ করা হবে।

যদি আপনার উত্স ফাইলগুলিতে অ্যাক্সেস না থাকে তবে আপনি জিপ ফাইলটি আনজিপ করতে পারেন, তারপরে পছন্দসই ফাইলগুলি আপডেট করতে পারেন এবং তারপরে -uপতাকাটি দিয়ে পুনরায় জিপ করুন । আবার, কেবল পরিবর্তিত ফাইলগুলি জিপ করা হবে।

উদাহরণ:

মূল উত্স কাঠামো


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt

আপডেট উত্স কাঠামো


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt 
│   │   ├── logs4.txt <-- NEW FILE 

ব্যবহার

$ zip -ur existing.zip ParentDir 
> updating: ParentDir/ChildDir/Logs (stored 0%)
>   adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)

ধন্যবাদ! আমি ফোল্ডারের কিভাবে নির্দিষ্ট করতে পারেন মধ্যে এটি যোগ করতে জিপ?
হারুন

আপনার প্রশ্নের উত্তর দেওয়ার জন্য আমি একটি বিভাগ যুক্ত করেছি। :)
ইথান স্ট্রাইডার

0

আমি বিশ্বাস করি আপনি এই আদেশটি ব্যবহার করে ফাইলগুলি যুক্ত করতে পারেন:

zip -r zipfile.zip newfile.txt newfile1.txt

-rজিপ কমান্ডের বিকল্প ফাইল জোড়া আপনি করতে পারবেন।


-rপুনরাবৃত্তির বিকল্প।
ctrl-alt-delor

@রিচার্ড, আমি এটি ঠিক করে ফেলছি। গিমমে কয়েকটি
রাইকায়ো

@রিচার্ড, আমার উত্সটি প্রমাণিত হয়েছে যে থেকে আপনি বলেছিলেন যে আপনি বিদ্যমান জিপ করা ফাইলটি পরিবর্তন করতে -r কমান্ডটি ব্যবহার করতে পারেন: linuxnix.com/2014/05/…
রাইকায়ো

2
যোগ করুন - বিদ্যমান এন্ট্রি আপডেট করুন এবং নতুন ফাইল যুক্ত করুন। সংরক্ষণাগারটি উপস্থিত না থাকলে এটি তৈরি করুন। এটি ডিফল্ট মোড। (ফাইলগুলি প্রতিস্থাপন বা যুক্ত করার জন্য কোনও বিকল্পের প্রয়োজন নেই -rdirectories ডিরেক্টরি যুক্ত করার সময়, বা ডিরেক্টরিগুলি যুক্ত করার সময় ব্যবহার করা যেতে পারে Well ওয়েল যে কোনও সময় আপনি কেবল ডিরেক্টরি এবং কোনও সামগ্রী যুক্ত করতে চান না, তাই বেশিরভাগ সময় । সুতরাং সংক্ষেপে উদাহরণটি সঠিক, তবে ব্যাখ্যাটি ভুল)) (এটি পরীক্ষা করা ভাল, এটি কেবল আমার ম্যানুয়ালটির ব্যাখ্যা)।
ctrl-alt-delor

2
সুরক্ষা কারণে, আপনি কি নিশ্চিত যে কোনও বিদ্যমান সংরক্ষণাগারটি সংশোধন করতে চান? পরিবর্তে আমি কমপক্ষে একটি সুরক্ষা অনুলিপি তৈরি করব, যুক্ত করব এবং তারপরে নতুনটির সাথে প্রতিশ্রুতি দেওয়ার আগে সংরক্ষণাগারটির অখণ্ডতাটি যাচাই করব।
এমডিপিসি


0

আমি সাফল্য zipকমান্ড ব্যবহার । সঙ্গে হত্তয়া (-G) বিকল্প, যাতে একটি subfolder যোগ করার জন্য folder1/folder2ফাইল ধারণকারী fileA.txtএবংfileB.txt :

zip -gr folder.zip folder1/folder2

-r মানে পুনরাবৃত্তি দির।

আমার বুঝতে-জি থেকে জিপ ফাইলগুলি বৃদ্ধি করা উচিত, নতুন জিপ ফাইল তৈরি করা উচিত নয় (এটি খুব বড় জিপ সংরক্ষণাগারগুলির সাথে কার্যকর হতে পারে)। ইস্যুগুলির ক্ষেত্রে আপনি প্রথমে ফোল্ডারটিতে সাবফোল্ডার তৈরি করার চেষ্টা করতে পারেন।

zip -g folder.zip folder1
zip -g folder.zip folder2

0

আপনার জিপ সংরক্ষণাগার সহ যদি আপনার একই জায়গায় প্রচুর ফাইল থাকে এবং আপনি সেগুলি সমস্ত সংরক্ষণাগারটিতে অনুলিপি করতে চান তবে আপনি এটি করতে পারেন:

zip -ur zipfile.zip !(zipfile.zip)

এটি আপনার জিপ ফাইল আপডেট করে -u( -rবিকল্পটি) জিপ ফাইল নিজেই পাওয়া সমস্ত ফাইলগুলির সাথে পুনরাবৃত্তভাবে ( বিকল্প) বিকল্পটি ( !জিপফাইলে প্রত্যাখ্যান করা হয়)

তারপরে আপনি উপরের একই নিয়ম অনুসরণ করে জিপ ফাইল ব্যতীত সমস্ত ফাইল মুছতে পারবেন:

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