লিনাক্সের জিপ সংরক্ষণাগার থেকে একক ফাইল সরান


75

আমার একটি জিপ সংরক্ষণাগার রয়েছে ( -j -rপতাকাগুলির সাথে একটি স্ক্রিপ্টে স্বয়ংক্রিয়ভাবে তৈরি হয়েছে ) এবং আমি এটি থেকে একটি ফাইল মুছতে চাই। আমি নথিভুক্ত হিসাবে চেষ্টা করেছি।

zip -d "picture_43_9.jpg" gallery.zip

তবে আমি এই ত্রুটি পেয়েছি:

zip warning: picture_43_9.jpg not found or empty   
zip error: Nothing to do! (picture_43_9.jpg)  

যাই হোক, সেখানে হয় সংরক্ষণাগার ভিতরে যেমন একটি ফাইল এবং এটা খালি নয়:

unzip -l .../gallery.zip | grep -i 43_9.jpg  
1477092  2013-05-22 14:23   picture_43_9.jpg 

আমি কী ভুল করছি সে সম্পর্কে কোনও ধারণা?

উত্তর:


103

আপনার কাছে যুক্তিগুলি অদলবদল হয়েছে। এটা চেষ্টা কর:

zip -d gallery.zip "picture_43_9.jpg" 

থেকে জিপ (1) man পৃষ্ঠা:

-d
--delete
একটি জিপ সংরক্ষণাগার থেকে প্রবেশ মুছুন (মুছুন)। উদাহরণ স্বরূপ:

zip  -d  foo  foo/tom/junk  foo/harry/\*  \*.o

এন্ট্রি foo/tom/junk, শুরু হওয়া foo/harry/সমস্ত ফাইল এবং .o( যে কোনও পথে) দিয়ে শেষ হওয়া সমস্ত ফাইল মুছে ফেলা হবে । মনে রাখবেন যে, শেল পথনাম সম্প্রসারণ ব্যাকস্ল্যাশ সঙ্গে বাধার করা হয়েছে, যাতে জিপ আস্টেরিক্স দেখতে পারেন, সক্রিয় জিপ বিষয়বস্তুর উপর মেলে জিপ বর্তমান ডিরেক্টরির বিষয়বস্তু পরিবর্তে আর্কাইভ। (এমএসডোস-ভিত্তিক প্ল্যাটফর্মগুলিতে ব্যাকস্ল্যাশগুলি ব্যবহার করা হয় না)) অস্ট্রিস্কগুলি থেকে বাঁচতে উদ্ধৃতিগুলিও ব্যবহার করতে পারে

zip -d foo foo/tom/junk "foo/harry/*" "*.o"

শেলটি ওয়াইল্ডকার্ডগুলি প্রসারিত করে এমন একটি সিস্টেমে তারকাচিহ্নগুলি অব্যাহতি না রাখার ফলে বর্তমানের ডিরেক্টরিতে থাকা তারকাচিহ্নগুলি ফাইলের তালিকায় রূপান্তরিত হতে পারে এবং সেই তালিকাটি সংরক্ষণাগার থেকে প্রবেশগুলি মুছতে ব্যবহৃত হয়।

এমএসডিএস-এর অধীনে, -d হ'ল জিপ সংরক্ষণাগারটিতে নামের সাথে মেলে তখন কেস সংবেদনশীল । এটির প্রয়োজন হয় যে ফাইলগুলির নামগুলি একটি MSDOS সিস্টেমে পিকেজিআইপি দ্বারা জিপ করা থাকলে upperর্ধ্ব ক্ষেত্রে। (আমরা সিস্টেমগুলিতে এই কেসটিকে সংবেদনশীল হিসাবে বিবেচনা করেছি যেখানে পাথগুলি সংবেদনশীল ছিল না, তবে এটি সম্ভবত সংরক্ষণাগারটি এমন কোনও সিস্টেম থেকে এসেছে যেখানে ক্ষেত্রে কোনও বিষয় আসে না এবং সংরক্ষণাগারটি সংরক্ষণাগারে উভয় Barএবং bar পৃথক ফাইল হিসাবে অন্তর্ভুক্ত করতে পারে But) তবে নতুন বিকল্পটি দেখুন - সংরক্ষণাগার ক্ষেত্রে আইসিসি উপেক্ষা করুন।


আপনি ঠিক বলেছেন, ধন্যবাদ, আমি জিপের কমান্ড লাইন সাহায্যের দ্বারা বিভ্রান্ত হয়ে পড়েছি zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
অ্যালেক্স ফ্লো

@ অ্যালেক্সফ্লো: আপনার ম্যান পেজের একটি অনুলিপি থাকতে পারে। উপরে বর্ণিত অনুলিপিটিতে "[ জিপফাইলে [ ফাইল… ]]" বলা হয়েছে, যার অর্থ আপনার কাছে (ক) কোনও ফাইল নাম যুক্তি থাকতে পারে না (যদিও আমি জানি না যে এটি কীভাবে বৈধ হতে পারে, অন্যথায় আপনি যখন সাহায্য চাইছেন তখন ), (খ) একটি জিপ ফাইল (আর্কাইভ ফাইল) নামে কেবল, অথবা (গ) একটি জিপ ফাইল নাম দ্বারা অনুসরণ এক বা একাধিক সাধারণ ফাইলের নাম। (সংরক্ষণাগারে
স্কট

@ অ্যালেক্সফ্লো - আপনি স্ট্যান্ডিন এবং পাইপের মাধ্যমে ফাইলের যুক্তিগুলি পাস করতে পারেন zip, ম্যান পৃষ্ঠাতে যেমনটি আপনি উল্লেখ করেছেন। উদাহরণস্বরূপ, যদি আপনি সম্বলিত একটি ডিরেক্টরির মধ্যে আছেন file1.txt, file2.txtএবং file3.txt, আপনি নির্বাহ করতে পারেন ls -1 | zip -q 'files.zip' -@, যা সংরক্ষণাগার তৈরি করবে files.zipতোমাদের জন্য বাঁশি বাজালাম 3 ফাইল ধারণকারী zipতাদের ফাইলের নামের অক্ষত সঙ্গে।
রুবিনোরেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.