~ 500k ফাইল ধারণকারী একটি ডিরেক্টরি থেকে ~ 100k ফাইল সংরক্ষণ করার জন্য আমাকে একটি জিপ ফাইল সংরক্ষণ করতে হবে। যখন আমি সুস্পষ্ট আদেশগুলি চেষ্টা করি তখন আমি "যুক্তি তালিকাটি খুব দীর্ঘ" ত্রুটিগুলি পেতে পারি:
zip archive.zip *pattern*.txt # fails
zip archive.zip `find . -name "*pattern*.txt"` # fails
এক পদ্ধতির ব্যবহার করা হয় -@
স্টেডিনের মাধ্যমে ফাইলগুলির তালিকা ফিড করার বিকল্প:
find . -name "*pattern*.txt" | zip -@ archive.zip
তবে zip
মানুষ পাতা বলেছেন:
যদি ফাইল তালিকাটি যেমন - @ [MacOS এ নয়] হিসাবে উল্লেখ করা হয়, জিপ কমান্ড লাইনের পরিবর্তে মানক ইনপুট থেকে ইনপুট ফাইলগুলির তালিকা নেয়।
এটি "ম্যাকস এ নেই" যা আমাকে বিরক্ত করছে। আমি এগিয়ে গিয়েছিলাম এবং চেষ্টা -@
বিকল্প, এবং এটা কাজ বলে মনে হয়; কিন্তু আমি সত্যিই সঠিক কাজ করছে কিনা সে সম্পর্কে স্নায়বিক বোধ করছি (সমস্ত ফাইল সংরক্ষণ, অক্ষত)।
এখানে আমার প্রশ্ন:
- কেন
-@
ম্যাকস ঠিক আছে না? - সেখানে MacOS / bash / zip এর কিছু সংস্করণ আছে যেখানে এই সতর্কতা সত্য, এবং অন্যরা কোথায় না? এটি একটি অপ্রচলিত সতর্কতা, এবং যদি তাই, বিভাজক লাইন কোথায়?
- ব্যবহার ছাড়া এই সমস্যার জন্য একটি কার্যকর পদ্ধতির কি হবে
-@
?
এখানে দেওয়া সমাধান যে নোট জিপ: আর্গুমেন্ট তালিকা খুব দীর্ঘ (সামগ্রিক 80.000 ফাইল) কাজ করবে না; আমি ডিরেক্টরির মধ্যে ফাইল কিছু, সংরক্ষণাগার করা প্রয়োজন।
আমি ম্যাক অপারেটিং সিস্টেম 10.7.5 চলমান করছি। এখানে কিছু সংস্করণ তথ্য আছে:
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
$ zip --version
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
...
Compiled with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00) for Unix (Mac OS X) on Jun 24 2011.