কাজের ডিরেক্টরি পরিবর্তন করুন


13

আমি এখানে একটি ডিরেক্টরি সংকোচনের চেষ্টা করছি

/home/cyrus/sql

এবং আমি ফোল্ডারটি জিপ করার সময় ওয়ার্কিং ডিরেক্টরিটি পরিবর্তন করতে চেয়েছিলাম:

/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql

তবে আমি জিপ ফাইলটি যখন পরীক্ষা করি:

/ $ unzip -l sql.zip

Archive:  sql.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2013-05-30 10:59   home/cyrus/sql/
  1776642  2013-05-23 10:22   home/cyrus/sql/wordpress.sql
---------                     -------
  1776642                     2 files

মূল ফোল্ডারটি হওয়া উচিত ছিল sql। আমি কি ভুল করেছি?

উত্তর:


10

থেকে man zip:

-b path

 --temp-path path

অস্থায়ী জিপ সংরক্ষণাগারটির জন্য নির্দিষ্ট পথটি ব্যবহার করুন। উদাহরণ স্বরূপ:

zip -b /tmp stuff *

ডিরেক্টরি / tmp এ অস্থায়ী জিপ সংরক্ষণাগার স্থাপন করবে, সম্পন্ন হয়ে গেলে বর্তমান ডিরেক্টরিতে স্টাফ-জিপ অনুলিপি করে। বিদ্যমান বিকল্প সংরক্ষণাগারটি আপডেট করার সময় এই বিকল্পটি কার্যকর এবং এই পুরাতন সংরক্ষণাগারটি অন্তর্ভুক্ত ফাইল সিস্টেমের একই সাথে পুরানো এবং নতুন উভয় সংরক্ষণাগার রাখার জন্য পর্যাপ্ত স্থান নেই। ডেটা বর্ণনাকারীদের প্রয়োজনীয়তা এড়াতে কিছু ক্ষেত্রে স্ট্রিমিংয়ের সময় এটি কার্যকরও হতে পারে। নোট করুন যে এই বিকল্পটি ব্যবহার করার জন্য গন্তব্য ফাইল সিস্টেমে সংরক্ষণাগার ফাইলটি অনুলিপি করতে অতিরিক্ত সময় নিতে পারে।

ডিফল্টরূপে zipবর্তমান ডিরেক্টরি সম্পর্কিত পুরো পথটি সঞ্চয় করে stores আপনি যদি আপনার জিপফাইলে আপনার sqlডিরেক্টরিটি মূল হিসাবে দেখতে চান তবে আপনাকে ডিরেক্টরি থেকে কমান্ডটি চালাতে হবে /home/cyrus


14

আপনি যদি zipকোনও প্রদত্ত ডিরেক্টরিতে সামগ্রীটি চান এবং zipফাইলটি বর্তমান ডিরেক্টরিতে সঞ্চয় করতে চান তবে আপনি এটি লিখতে পারেন:

(cd /some/dir && zip -r - dir-there) > file.zip

5

-bzipঅস্থায়ী ফাইলগুলি কোথায় রাখা উচিত তা সুনির্দিষ্ট করে না যে এটি কোথাও ডিরেক্টরি পরিবর্তন করতে পারে। থেকে man zip:

 -b path
      Use the specified path for the temporary  zip  archive.

এটা চেষ্টা কর:

cd /home/cyrus && zip sql.zip sql

অথবা cd /home/cyrus && zip /sql.zip sqlআপনি চাইলে মূলটিতে জিপ ফাইল তৈরি করতে পারেন।
ট্রিপলি

2

আমি এই অধিকারটি বুঝতে পারছি কিনা তা নিশ্চিত নই তবে -b মূল ফোল্ডারটি পরিবর্তন করবে না। এটি ডিরেক্টরি / হোম / ক্রিউসগুলিতে অস্থায়ী জিপ সংরক্ষণাগার স্থাপন করবে, সম্পন্ন হয়ে গেলে বর্তমান ডিরেক্টরিতে sql.zip অনুলিপি করে। বিদ্যমান বিকল্প সংরক্ষণাগারটি আপডেট করার সময় এই বিকল্পটি কেবল কার্যকর এবং এই পুরাতন সংরক্ষণাগারটি থাকা ফাইল সিস্টেমে একই সাথে পুরানো এবং নতুন উভয় সংরক্ষণাগার রাখার জন্য পর্যাপ্ত স্থান নেই।

ব্যবহার করার চেষ্টা করুন:

-j কেবলমাত্র একটি সংরক্ষিত ফাইলের নাম সংরক্ষণ করুন (পাথ জাঙ্ক) এবং ডিরেক্টরিগুলির নাম সংরক্ষণ করবেন না। ডিফল্টরূপে, জিপ পুরো পাথ (বর্তমান পথের তুলনায়) সংরক্ষণ করবে।


1
-jসঠিক হতে পারে না; আমি ধরে নেব যে ওপি সমস্ত পাথ অপসারণ করে না, আপেক্ষিক পথ ধরে রাখতে চায়।
ট্রিপলি

2

স্টিফেনের উত্তরে অনুপ্রাণিত:

(cd /home/cyrus; zip -r sql.zip sql;)

ফলাফল:

  1. আপনার / বাড়িতে / সাইরাস / এ একটি sql.zip আছে
  2. sql.zip এ sQL / ডিরেক্টরি এবং এর সমস্ত সামগ্রী রয়েছে
  3. আপনি প্রাথমিক PWD পরিবর্তন করেন না

4
এটা কিভাবে ভাল?
স্টিফেন রাউচ

0

আপনি যে ফোল্ডারটি বর্তমান ডিরেক্টরিটিতে জিপ করার চেষ্টা করছেন সেটি সিমিলিং করা আরও সহজ হতে পারে। এই পথে আপনি যেখানেই থাকতে পারেন।

ln -s /path/to/whatever .
zip -r myzip whatever

আপনি চাইলে তাদের আরএম সিএমলিংক করুন।

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