আমি কীভাবে অন্য ফোল্ডারের মধ্যে প্রতিটি ফোল্ডারের জন্য একটি .zip ফাইল তৈরি করতে পারি?


18

ফোল্ডারের নীচে images\আমার কাছে নিম্নলিখিত ফোল্ডারগুলি রয়েছে:

  • Usa\
  • Italy\
  • Japan\

ইত্যাদি ..

আমি একটি স্ক্রিপ্ট একটি সৃষ্টি চান .zipএই ফোল্ডারগুলি প্রত্যেকের জন্য, তাই আমি আছে usa.zip, italy.zip, japan.zip

আমি এটা কিভাবে করবো?

উত্তর:


10

আমি ধরে নিলাম এটি উইন্ডোজ, যেমন আপনি ব্যাকস্ল্যাশ ব্যবহার করছেন।

পান 7za.exe (এর কমান্ড-লাইন সংস্করণের 7-জিপ ) এবং আপনার এটা করা %PATH%

তারপরে এটি আপনার Images\ডিরেক্টরিতে চালান :

for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"

বা ব্যাচের স্ক্রিপ্টে:

for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"

ফোল্ডারগুলির নামে স্পেস থাকলে এটি কাজ করে না।
jiggunjer

@ জিগগুনজার হ্যাঁ, আপনি ঠিক বলেছেন। আমি এটি ফোল্ডারের নামে ফাঁকা জায়গায় কাজ করার জন্য স্থির করেছি।
প্যারাড্রয়েড

1
এটি সাধারণ 7 জিপ এক্সিকিউটেবলের সাথেও কাজ করে। আমি 7za কে "সি: \ প্রোগ্রাম ফাইলগুলি \ 7-জিপ \ 7z.exe" এ আপডেট করেছি এবং এটি ইস্যু ছাড়াই কাজ করেছে।
ব্যবহারকারী 1324161

8

ধরে নিই যে আপনি লিনাক্সে রয়েছেন আপনি এটির মতো বাশ স্ক্রিপ্টটি ব্যবহার করতে পারেন:

  #!/bin/bash

  IFS=$'\n'

  for f in $(find "$1" -mindepth 1 -maxdepth 1 -type d ); do
    zip -r "$f" "$f"
  done

এই স্ক্রিপ্টটি ফোল্ডার হিসাবে প্রথম যুক্তিটি গ্রহণ করবে, এক্ষেত্রে চিত্রগুলি এবং আপনার সমস্ত ফোল্ডার (মার্কিন যুক্তরাষ্ট্র, ইতালি এবং জাপান) পেতে এবং একই স্থানে জিপ করার জন্য ঠিক এক স্তর গভীর পুনরাবৃত্তি করবে।

এটি পুরানো জিপ ফাইল বা উত্স ফোল্ডারগুলি মুছবে না। জিপ বিদ্যমান স্মার্ট জিপ ফাইলগুলি সনাক্ত করতে এবং আবার চালানোর সময় সেগুলিকে আপডেট করার জন্য যথেষ্ট স্মার্ট। তবে আপনি যদি সোর্স ফোল্ডারে কোনও ফাইল মুছলে তা জিপ ফাইলগুলিতে মুছে ফেলা হবে না । আপনি আগে থেকে বিদ্যমান ফাইলগুলি মুছে ফেলার মাধ্যমে এই আচরণটি নিষ্ক্রিয় করতে পারেন।


আমি স্ফনিরো পোস্ট করা লিনাক্স স্ক্রিপ্টটি ব্যবহার করেছি এবং ফোল্ডারগুলি মুছতে শুরুতে একটি লাইন যুক্ত করেছি: find 1-টাইপ ডি | xargs rm -rf
উত্সাহিত করুন

7

আপনি এর জন্য উইনার ব্যবহার করতে পারেন ।

আপনার সমস্ত ফোল্ডার নির্বাচন করুন, ডান ক্লিক করুন এবং নির্বাচন করুন Add to archive। এবার Put each file to separate archiveট্যাবের নীচে বিকল্পটি নির্বাচন করুন Files:

এখানে চিত্র বর্ণনা লিখুন

ঠিক আছে ক্লিক করুন এবং আপনার কাজ সম্পন্ন হয়েছে। আপনি যদি .rar এর পরিবর্তে .zip ফাইলগুলি চান তবে কেবল ZIPনীচের Generalট্যাবে নির্বাচন করুন Archive format


0

এই উত্তর দ্বারা MvG উবুন্টু উপর আমার জন্য কাজ:

আপনি এই লুপটি ব্যবহার করতে পারেন bash:

for i in */; do zip -r "${i%/}.zip" "$i"; done

iলুপ ভেরিয়েবলের নাম। */বর্তমান ডিরেক্টরিটির প্রতিটি উপ-ডিরেক্টরি বোঝায় এবং সেগুলির মধ্যে একটি পিছনে স্ল্যাশ অন্তর্ভুক্ত থাকবে। cdএটি কার্যকর করার আগে আপনি সঠিক জায়গায় নিশ্চিত হন। "$i"পিছনে স্ল্যাশ সহ কেবল সেই ডিরেক্টরিটির নাম দেয়। উদ্ধৃতি চিহ্নগুলি নিশ্চিত করে যে ডিরেক্টরি নামের সাদা অংশটি সমস্যার কারণ হবে না। ${i%/}মত $iতবে পেছনের স্ল্যাশ সরানো সহ, তাই আপনি জিপ ফাইলটির নাম তৈরি করতে এটি ব্যবহার করতে পারেন।

আপনি যদি এটি কীভাবে কাজ করে তা দেখতে চান তবে এর echoআগে একটি অন্তর্ভুক্ত করুন zip এবং সম্পাদিত পরিবর্তে মুদ্রিত কমান্ডগুলি দেখতে পাবেন।

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