কীভাবে বিদ্যমান জিপ ফাইলটিকে তথ্য-জিপ আপডেট করার পরিবর্তে ওভাররাইট করা যায়?


30

টারের মতো একটি নতুন জিপ ফাইল পেতে, আমাকে rm foo.zipকার্যকর করার আগে কি সম্পাদন করতে হবে zip?

$ mkdir foo; touch foo/bar
$ zip -r foo.zip foo
  adding: foo/ (stored 0%)
  adding: foo/bar (stored 0%)
$ rm foo/bar; touch foo/baz
$ zip -r foo.zip foo
  adding: foo/ (stored 0%)
  adding: foo/baz (stored 0%)
$ unzip -l foo.zip
Archive:  foo.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2011-10-27 07:49   foo/
        0  2011-10-27 07:49   foo/bar
        0  2011-10-27 07:49   foo/baz
---------                     -------
        0                     3 files

উত্তর:


32

"ফাইল সিঙ্ক" করতে -এফএস বিকল্পটি ব্যবহার করুন

zip -FSr foo.zip foo

এটি ফোল্ডারে জিপটিতে যে কোনও নতুন ফাইল যুক্ত করবে এবং ফোল্ডারে নেই এমন জিপ থেকে কোনও ফাইল মুছবে।


জিপের কোন সংস্করণে এই বিকল্প রয়েছে? আমার জিপ কমান্ড "-S" স্বীকৃতি দেয় না
জয়ন

2
সুইচ -FSনা -Fএবং -Sএকসঙ্গে। অন্তত জিপ 3.0 থেকে এটি রয়েছে has চেক man zip
পল

"নতুন ফাইল" কীভাবে সংজ্ঞায়িত করা হয়? এর ফাইলাইজ পরিবর্তন, তারিখ সংশোধন, উভয়? কেবল কৌতূহলী
মসলেই

এটি কেবল তার জন্য কাজ করে Zip 3.0এবং কাজ করে না Zip 2.32(জিপ প্যাকের পুরানো ফাইলগুলি সরিয়ে দেয় না)
নবী কেএজেড

মানে -FS -r, তাই না?
হিমস্রোত 1

0

-FSবিকল্পটি ব্যবহার করার (বা পুরানো জিপ ফাইলটি মুছে ফেলা ) বিকল্প হিসাবে এবং আক্ষরিক অর্থে বিদ্যমান জিপ ফাইলটি ওভাররাইট করা হ'ল zipস্টিডিনকে আউটপুট জিজ্ঞাসা করা এবং আউটপুটটিকে আপনার পছন্দের ফাইলটিতে পুনর্নির্দেশ করা:

zip -r - foo >foo.zip

যদি foo.zip উপস্থিত থাকে, তবে এটি শেল পুনর্নির্দেশ দ্বারা ওভাররাইট করা হবে, যার অর্থ আপনি প্রতিবার একটি নতুন নতুন জিপ ফাইল পাবেন, প্রতিবার 100% সময় 🙂


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