আমি কীভাবে একটি tar.gz ফাইল আপডেট করব?


32

আমি একটি tar.gz ফাইল তৈরি করেছি (জিইউআই ব্যবহার করে, কমান্ড লাইনটি নয়)। নতুন ফাইল যুক্ত হয় এবং পরিবর্তিত ফাইলগুলিও আপডেট হয় এমন একটি আদেশ দিয়ে আমি কীভাবে এটি আপডেট করতে পারি?


উত্তর:


28

আপনি সাধারণত এটির জন্য -u পতাকা ব্যবহার করবেন। তারের ম্যান পৃষ্ঠা থেকে:

 -u, --update
       only append files newer than copy in archive

সুতরাং এই ক্রমটি আপনার যা প্রয়োজন তা করবে:

# First create the tar file. It has to be UNCOMPRESSED for -u to work
tar -cvf my.tar some-directory/
# ... update some files in some-directory
# ... add files in some-directory
# Now update only the changed and added files
tar -uvf my.tar some-directory/
# Compress if desired
gzip my.tar

কিছুটা আরও বিশদ বর্ণনার জন্য, এখানে দেখুন: http://www.gnu.org/software/tar/manual/html_node/how-to-update.html


2
ওপি সংক্ষেপিত সংরক্ষণাগারটি আপডেট করার বিষয়ে জিজ্ঞাসা করেছিল যা আপডেট করা যায় না।
কিকিজেড

18

সমাধান / ওয়ার্কারআউন্ড

আপনি এক ধাপে সংক্ষেপিত টিআরআরআর্কাইভ ( .tar.gz ) আপডেট করতে পারবেন না । তবে, যদি আপনার পর্যাপ্ত ফাঁকা জায়গা থাকে তবে আপনি এটি করতে পারেন:

  1. এক্সট্র্যাক্ট .tar থেকে ফাইল .tar.gz ফাইল:

    gunzip filename.tar.gz

  2. কমান্ড সহ সঙ্কুচিত .tar ফাইল আপডেট করুন tar -u:

    tar -uf filename.tar new_file

  3. আপডেট করা .tar ফাইল সংকোচন করুন:

    gzip filename.tar

Speedup

আপনার যদি মাল্টি-কোর সিপিইউ থাকে তবে আমি এক্সট্র্যাক্ট এবং .gz ফাইল তৈরির pigzপরিবর্তে ব্যবহার করার পরামর্শ দিচ্ছি । ( এটি একটি বহু-থ্রেডযুক্ত বাস্তবায়ন )gzippigzgzip

কেবল gzip/ gunzipকমান্ড প্রতিস্থাপন pigz/ unpigz

সম্পর্কিত ম্যানুয়াল


5

আপনি যদি ফাইলটিতে কোনও নির্দিষ্ট ফাইল আপডেট করতে চান তবে *.tar.gzকেবল নিম্নলিখিতটি করুন:

ফাইলটি viযেখানে tarপাওয়া যায় সেখান থেকে প্রবেশ করুন

/home>vi

উদাহরণস্বরূপ, যদি আপনি ডিরেক্টরিতে অন্তর্ভুক্ত যা সরল.আর.ডি.জেড সংশোধন করতে চান /home/test/:

/home/test>vi

এবং খালি সম্পাদকটিতে এন্টার :n simple.tar.gzটিপুন এবং Enter আপনি ফোল্ডার এবং ফাইলগুলির তালিকা পাবেন যেখানে আপনি কার্সারটি সরান এবং যেখানে ক্লিক করতে চান সেখানে ক্লিক করুন Enter। এটি viনির্দিষ্ট ফাইলের সম্পাদককে প্রদর্শিত হবে । তারপরে iফাইলটি পরিবর্তন করার বিকল্প। সফল পরিবর্তন পরে। Escকী টিপুন এবং :wqফাইলটি লিখতে এবং ফাইলটি বন্ধ করতে বেছে নিন । তারপরে :qফাইল তালিকা থেকে বেরিয়ে আসতে ব্যবহার করুন।


1

আপনি যদি বার বার এটি করতে যাচ্ছেন তবে একটি অপ্টিমাইজেশন হতে পারে:

if [[ -f my.tar.gz ]]; then
    if [[ ! -f my.tar ]]; then
        echo 'No tar, unzipping tar.gz'
        gunzip my.tar.gz
    fi
    tar -uvf my.tar file1 file2 file_new
    gzip -fk my.tar  # This keeps a copy of the tar.
    # -f --force overwrite existing .tar.gz
    # -k --keep Keep the input file (.tar file)
else
    tar -cvzf my.tar.gz file1 file2
fi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.