এই সর্বাধিক প্রাথমিক প্রশ্নটি ক্ষমা করুন, তবে স্ট্যাক এক্সচেঞ্জের আমি সরাসরি উত্তর বা সহজ উদাহরণ খুঁজে পাইনি।
ধরা যাক যে আমার কাছে ফাইলগুলির একটি ফোল্ডার রয়েছে যা আমি আমার জিপ ফাইলগুলিতে একটি সংক্ষিপ্ত করতে চাই যা আমি আমার ভয়ঙ্কর উইন্ডোজ বন্ধুদের সাথে ভাগ করতে পারি (অন্যথায় আমি কেবল এটি ব্যবহার tar
করব এবং এটি দিয়ে শেষ করব)। দেখে মনে হচ্ছে:
.
├── file1.txt
├── file2.txt
├── file3.txt
├── file.jpg
└── test.jpg
ধরে নিচ্ছি যে আমি zip
ইনস্টল করেছি:
sudo apt-get install zip
আমি দেখতে পাচ্ছি man zip
যে এটি আমাকে একটি ফাইল তালিকা ব্যবহার করতে দেয়:
- @ ফাইল তালিকা। যদি কোনও ফাইল তালিকা - @ [ম্যাকোজে নেই] হিসাবে নির্দিষ্ট করা থাকে তবে জিপ কমান্ড লাইনটির পরিবর্তে স্ট্যান্ডার্ড ইনপুট থেকে ইনপুট ফাইলগুলির তালিকা নেয় of উদাহরণ স্বরূপ,
zip -@ foo
সুতরাং আমি তৈরি করেছি zip.lst
যা দেখতে এরকম দেখাচ্ছে:
cat zip.lst
file1.txt
file2.txt
file3.txt
file.jpg
test.jpg
এবং এখন আমি চেষ্টা করেছি:
zip -@ zip.lst
তবে এটি কনসোলে একটি ফাঁকা লাইন তৈরি করা ছাড়া কিছুই করেনি। এবং আমি ঠেলাঠেলি চালিয়ে যেতে পারি Enterএবং এটি কমান্ডটি আপাতদৃষ্টিতে প্রয়োগ না করে কেবল আরও ফাঁকা রেখা তৈরি করে রাখে। কিছু অনুসন্ধানের পরে, আমি বুঝতে পারি যে আমাকে Ctrl+ টিপে ইনপুট সমাপ্ত করা দরকারD
তবে এখন আমি এই ত্রুটিটি পেয়েছি:
zip warning: missing end signature--probably not a zip file (did you
zip warning: remember to use binary mode when you transferred it?)
zip warning: (if you are trying to read a damaged archive try -F)
zip error: Zip file structure invalid (zip.lst)
কি!? আমার সাধারণ তালিকাটি কীভাবে একটি "বৈধ ফাইল কাঠামো" নয়? আরও তথ্যের জন্য ম্যানুয়ালটিতে ফিরে আসুন এবং আমি এটিকে আরও কাছাকাছি দেখব:
যদি একটি ফাইল তালিকা হিসাবে উল্লেখ করা হয় - @ ...
সুতরাং আমি এটি ছাড়াই চেষ্টা করেছি -@
এবং এটি কমপক্ষে Ctrl+ টিপুন না করেই সরাসরি এটি প্রক্রিয়া করে Dতবে আমি একই ত্রুটিটি দিয়ে চলেছি ।
ভাগ্যক্রমে, আমি প্রায় সম্পর্কিত না হওয়া প্রশ্নের উত্তরের একটি মন্তব্য পেয়েছি যা আমাকে বুঝতে পেরেছিল যে আমার জিপ ফাইলের স্পষ্টভাবে নামকরণ করা দরকার। এই ত্রুটিটি ঘটেছে কারণ ডিফল্টরূপে এটি কল করা একটি জিপ ফাইল তৈরি করার চেষ্টা করেছিল zip.lst
। তবে যেহেতু এটি আমার তালিকার নাম, তাই কেউ মনে করতে পারে যে এটি কেবল এটিকে ওভাররাইট করবে, কিন্তু না, এটি আসলে এটি আপডেট করার চেষ্টা করছিল। এবং যেহেতু তালিকাটি অবশ্যই একটি জিপ ফাইল নয়, তাই আমরা অবৈধ ফাইলের কাঠামোর ত্রুটি পেয়েছি এবং এখন এটি স্পষ্ট হয়ে গেছে কেন এটি সম্ভবত "একটি জিপ ফাইল নয়" said তাহলে আমি চেষ্টা করেছি:
zip files.zip zip.lst
adding: zip.lst (deflated 35%)
ইউরেকা! আমি দেখতে পারি জিপ ফাইলটি তৈরি হয়েছিল এবং আমার ফোল্ডারে এখন এটি রয়েছে:
.
├── file1.txt
├── file2.txt
├── file3.txt
├── file.jpg
├── files.zip
├── test.jpg
└── zip.lst
তবে আমরা উদযাপনের আগে অপেক্ষা করুন, আসুন প্রথমে জিপ ফাইলের বিষয়বস্তু নিশ্চিত করুন:
unzip -l files.zip
Archive: files.zip
Length Date Time Name
--------- ---------- ----- ----
48 2016-05-24 15:30 zip.lst
--------- -------
48 1 file
না! ওয়েল, আসলে এটি স্ট্যান্ডার্ড ব্যবহার থেকে বোঝায় কারণ এটি কেবল একটি তালিকা ফাইলটি আমি দিয়েছি z শেষ পর্যন্ত আমি আবার চেষ্টা করেছি -@
কিন্তু একই ফলাফল পেয়েছি।
আমি কি ভুল করছি?
বিটিডাব্লু, আমি জানি আমি জিইআইআই ব্যবহার করতে পারি এবং এটি আমার মাউস দিয়ে করতে পারি, তবে আমার এটির স্ক্রিপ্ট করা দরকার এবং আমি কী করছি তা জানার পরে সাধারণভাবে আমি সিএলআই-তে দ্রুততর।
ls
এবংgrep
এবং পিন এর-@
, ফাইলগুলি জিপ কমান্ড লাইন যেমন সরাসরি নির্বাচন করতে শেল globs ব্যবহার করতে পারেনzip files.zip file*
বাzip images.zip *.jpg
। এছাড়াও, কোনও ফাইল থেকে ফাইলেরzip files.zip -@ < zip.lst