বাংলায় শেল ও শেলস্ক্রিপ্টিং শেখার কোর্স
  • শুরুর কথা
  • প্রথম খন্ড - শেল বেসিক
    • প্রথম অধ্যায় - শেল বেসিক
      • শেল ও প্রম্পট
      • কমান্ড
      • নেভিগেশন
      • আরো একটু ls
      • ফাইল
      • লিঙ্ক
      • লিনাক্স ফাইলসিস্টেম
    • দ্বিতীয় অধ্যায় - ম্যানিপুলেশন
      • ওয়াইল্ডকার্ড
      • ফাইল ও ডিরেক্টরি তৈরি করা
      • ফাইল ও ডিরেক্টরি কপি করা
      • ফাইল ও ডিরেক্টরি মুভ করা
      • ফাইল ও ডিরেক্টরি রিমুভ করা:
      • হার্ডলিঙ্ক ও সফ্টলিঙ্ক তৈরি করা
      • অনুশীলন
    • তৃতীয় অধ্যায় - রিডিরেকশন
      • স্ট্যান্ডার্ড ইনপুট, আউটপুট এবং এরর
      • স্ট্যান্ডার্ড আউটপুট রিডিরেকশন
      • স্ট্যান্ডার্ড এরর রিডিরেকশন
      • স্ট্যান্ডার্ড আউটপুট ও এরর একত্রে রিডিরেকশন
      • ফাইল সংযুক্তিকরণ
      • পাইপলাইন
    • চতুর্থ অধ্যায় - শেলের চোখে দেখা
      • এক্সপ্যানসন
      • পাথনেম এক্সপ্যানসন
      • গানিতিক এক্সপ্যানসন
      • ব্রেস এক্সপ্যানসন
      • প্যারামিটার এক্সপ্যানসন
      • কমান্ড সাবস্টিটিউশন
      • ক্যোটিং
      • স্কেইপিং ক্যারেক্টার
    • পঞ্চম অধ্যায় - কীবোর্ড ট্রিক্স
      • কমান্ডলাইন এডিটিং
      • কমপ্লিশন
      • কমান্ড হিস্ট্রি
    • ষষ্ঠ অধ্যায় - পারমিশন
      • ওনার, গ্রুপ এবং অন্যান্য
      • এক্সেস রাইট
      • ফাইল পারমিশন পরিবর্তন
      • ফাইল পারমিশন মাস্কিং
      • বিশেষ পারমিশন
      • ওনার ইউজার ও গ্রুপ পরিবর্তন
      • পরিচয় পরিবর্তন
      • পাসওয়ার্ড পরিবর্তন
    • সপ্তম অধ্যায় - প্রসেস
      • প্রসেস এর প্রাথমিক ধারণা
      • প্রসেস দেখা
      • প্রসেস নিয়ন্ত্রণ
      • সিগন্যাল
  • দ্বিতীয় খন্ড - কনফিগারেশন ও এনভায়রনমেন্ট
    • প্রথম অধ্যায় - এনভায়রনমেন্ট
      • এনভায়রনমেন্টের ভিতরে দেখা
      • যেভাবে এনভায়রনমেন্ট তৈরী হয়
      • এনভায়রনমেন্ট পরিবর্তন
    • দ্বিতীয় অধ্যায় - প্রম্পট সম্পাদনা
      • প্রম্পট কাস্টমাইজেশন
      • প্রম্পট রঙ করা
      • কার্সরের অবস্থান পরিবর্তন
  • তৃতীয় খন্ড - আটপৌরে কমান্ডলাইন
    • প্রথম অধ্যায় - প্যাকেজ ম্যানেজমেন্ট
    • দ্বিতীয় অধ্যায় - টেক্সট এডিটর
      • ন্যানো
        • ন্যানোর প্রাথমিক ব্যবহার
        • ন্যানো - এডিটিং এবং নেভিগেশন
        • ন্যানো কনফিগারেশন
      • ভিম
        • ভিম-এর এডিটিং মোড
        • ভিম-এর বেসিক এডিটিং
        • ভিম: সার্চ এ্যান্ড রিপ্লেস
        • ভিম: একাধিক ফাইল নিয়ে কাজ করা
      • ইম্যাকস্
        • ইম্যাকস্: প্রথম ধাপ
        • ইম্যাকস্: ক্যারেক্টার, কী এবং কমান্ড
        • ইম্যাকস্: বেসিক এডিটিং
        • ইম্যাকস্: সার্চ এ্যান্ড রিপ্লেস
        • ইম্যাকস্: একাধিক ফাইল এডিট করা
    • তৃতীয় অধ্যায় - স্টোরেজ মিডিয়া
      • লিনাক্সের চোখে স্টোরেজ ডিভাইস
      • মাউন্ট এবং আনমাউন্ট
      • পার্টিশন এবং ফরম্যাট করা
      • ফাইলসিস্টেম টেস্ট এবং রিপেয়ার করা
      • ডিভাইস ক্লোনিং
      • ইমেজ তৈরী
      • অপটিক্যাল মিডিয়ায় রাইট করা
    • চতুর্থ অধ্যায় - নেটওয়ার্কিং
      • নেটওয়ার্ক পরীক্ষণ এবং পর্যবেক্ষন
      • ফাইল ট্রান্সফার
      • নিরাপদ যোগাযোগ
    • পঞ্চম অধ্যায় - ফাইল সার্চ
      • Locate: নাম দিয়ে ফাইল সার্চ
      • find: শক্তিশালী সার্চ
        • find: টেস্ট
        • find: অপারেটর
        • find: একশন
        • find: অপশন
        • অনুশীলন
    • ষষ্ঠ অধ্যায় - আর্কাইভ ও ব্যাকআপ
      • ডাটা কম্প্রেশন
      • ডাটা আর্কাইভিং
      • dtrx
      • সিনক্রোনাইজেশন
    • সপ্তম অধ্যায় - আটপৌরে টুলস
      • রেঞ্জার(Ranger): ফাইল ম্যানেজার
      • মাট (Mutt): ইমেইল ক্লায়েন্ট
      • সিমিউজ(cmus): মিউজিক প্লেয়ার
      • ইলিঙ্কস (elinks): ওয়েব ব্রাউজার
      • উইচ্যাট (weechat) : আইআরসি ক্লায়েন্ট
      • ফিঞ্চ (finch) : চ্যাট ক্লায়েন্ট
    • অষ্টম অধ্যায় - প্রোগ্রাম কম্পাইলেশন
  • চতুর্থ খন্ড - টেক্সট ম্যানিপুলেশন
    • প্রথম অধ্যায় - রেগুলার এক্সপ্রেশন
      • গ্রেপ (grep)
Powered by GitBook
On this page
  • tar
  • zip ও unzip
  1. তৃতীয় খন্ড - আটপৌরে কমান্ডলাইন
  2. ষষ্ঠ অধ্যায় - আর্কাইভ ও ব্যাকআপ

ডাটা আর্কাইভিং

কম্প্রেসিং এর সাথে আরো একটি গুরুত্বপূর্ণ কাজ হল আর্কাইভিং (archiving) করা। এর মাধ্যমে অনেক ফাইল মিলে একটি বড় ফাইল তৈরী করা হয়। সিস্টেম ব্যাকাপে এটি বহুল ব্যবহৃত একটি উপায়। এবার আমরা দুটি আর্কাইভিং টুলস সম্পর্কে জানবো:

tar

tar ইউনিক্সসদৃশ্য সিস্টেমের জগতে একটি ঐতিহ্যবাহী আর্কাইভিং টুল। এর পুরো নাম, tape archive। অর্থাৎ যখন ম্যাগনেটিক টেপে ব্যাকআপ রাখা হত তখন এর উৎপত্তি। এখনো এটি কার্যকর পদ্ধতি। আমরা তাই প্রায়ই .tar, .tgz বা .tar.gz এক্সটেনশনের ফাইল দেখি। প্রথমটি সাধারণ আর্কাইভ আর বাকি দুটি কম্প্রেসড আর্কাইভ।

tar কমান্ডের কাঠামোটি একটু অন্যরকম:

tar [-]mode[options] pathname...

এখানে মোড বলে একটা অপশন দিতে হয় এবং তারসাথে অন্য অপশন জুড়ে থাকে। এবং অপশনগুলোর সামনে '-' চিহ্ন না দিলেও হয়। এবার আমরা গুরুত্বপূর্ণ মোডগুলো দেখি:

মোড

কাজ

c

নতুন আর্কাইভ তৈরী করে।

x

আর্কাইভ এক্সট্রাক্ট করে।

r

একটি আর্কাইভে আরো ফাইল যোগ করে।

t

আর্কাইভের ফাইল ও ডিরেক্টরির লিস্ট করে।

এবার আর্কাইভিং করতে আমরা কিছু ফাইল ও ডিরেক্টরি তৈরী করি:

me@howtocode-pc:~$ mkdir -p playground/dir-{001..100}
me@howtocode-pc:~$ touch playground/dir-{001..100}/file-{A..Z}

এবার আমরা playground ডিরেক্টরির সব কন্টেন্টসহ playground.tar নামে একটি আর্কাইভ তৈরী করবো এভাবে:

me@howtocode-pc:~$ tar -cf playground.tar playground

আমরা চাইলে -cf কে cf ও লিখতে পারতাম। 'f' অপশন দিয়ে আমরা ফাইলনেম দিয়েছি।

আবার আমরা চাইলে নির্দিষ্ট কিছু ফাইল find দিয়ে খুঁজে বের করে আর্কাইভ করতে পারতাম এভাবে:

me@howtocode-pc:~$ find playground -name 'file-A' -exec tar -rf playground.tar '{}' '+'

এখানে আমরা 'file-A' নামের সকল ফাইল নিয়ে আর্কাইভ করেছি।

আমরা .tgz যুক্ত gzip কম্প্রেসড আর্কাইভ ও .tbz যুক্ত bzip2 কম্প্রেসড আর্কাইভ তৈরী করতে পারি এভাবে:

me@howtocode-pc:~$ tar -czf playground.tgz playground
me@howtocode-pc:~$ tar -cjf playground.tbz playground

এখানে 'z' ও 'j' অপশন যথাক্রমে gzip ও bzip2 নির্দেশ করে। সেই অনুসারে আমরা আর্কাইভটিরও নাম বদলেছি।

এবার আমরা যদি চাই সকল file-A নামের ফাইল দিয়ে একটি bzip2 কম্প্রেসড আর্কাইভ করবো তবে লিখতে পারি:

me@howtocode-pc:~$ find playground -name 'file-A' | tar -cjf playground.tbz -T -

এখানে দুটি বিষয় লক্ষ্যণীয়। প্রথমত আমরা find কমান্ডের ফলাফল পাইপ দিয়ে tar এ প্রবাহিত করেছি। দ্বিতীয়ত, tar কমান্ডের শেষৈ -T - ব্যবহার করেছি। - দিয়ে স্ট্যান্ডার্ড ইনপুট ও আউটপুট দুটোই বোঝানো যায় প্রয়োজনমত। এখানে -T অপশন দিয়ে আমরা বলেছি কমান্ড থেকে সরাসরি ফাইলের নাম না নিয়ে স্ট্যান্ডার্ড ইনপুট থেকে নিতে। স্ট্যান্ডার্ড ইনপুট বোঝাতে - এবং স্ট্যান্ডার্ড ইনপুটে আমরা find কমান্ড চালিত করেছিলাম। অর্থাৎ এটি ইনপুট নেবে find কমান্ড থেকে।

আমরা playground.tar আর্কাইভটির ফাইললিস্ট দেখতে পারি এভাবে:

me@howtocode-pc:~$ tar -tf playground.tar
playground/
playground/dir-051/
playground/dir-051/file-B
playground/dir-051/file-E
playground/dir-051/file-I
playground/dir-051/file-H
playground/dir-051/file-W
...

আরো বিস্তারিত দেখতে পারি এভাবে:

me@howtocode-pc:~$ tar -tvf playground.tar
drwxrwxr-x me/me 0 2015-04-03 15:39 playground/
drwxrwxr-x me/me 0 2015-04-03 14:52 playground/dir-051/
-rw-rw-r-- me/me 0 2015-04-03 15:44 playground/dir-051/file-B
-rw-rw-r-- me/me 0 2015-04-03 14:52 playground/dir-051/file-E
-rw-rw-r-- me/me 0 2015-04-03 14:52 playground/dir-051/file-I
-rw-rw-r-- me/me 0 2015-04-03 14:52 playground/dir-051/file-H
-rw-rw-r-- me/me 0 2015-04-03 14:52 playground/dir-051/file-W
...

আমরা এবার নতুন একটি ডিরেক্টরিতে playground.tar এক্সট্রাক্ট করবো:

me@howtocode-pc:~$ mkdir extracted-pg
me@howtocode-pc:~$ cd extracted-pg
me@howtocode-pc:~$ tar -xf ../playground.tar
me@howtocode-pc:~$ ls
playground/

আমরা extracted-pg নামে একটি ডিরেক্টরি তৈরী করেছি এবং তার মধ্যে এক্সট্রাক্ট করেছি।

আমরা চাইলে সমস্ত আর্কাইভ এক্সট্রাক্ট না করে নির্দিষ্ট এক বা একাধিক ফাইল এক্সট্রাক্ট করতে পারতাম। যেমন আমরা যদি সব file-A নামের ফাইলগুলো এক্সট্রাক্ট করতে চাই সেটা করতে পারি এভাবে:

me@howtocode-pc:~$ tar -xf ../playground.tar --wildcards 'home/me/playground/dir-*/file-A'

এখানে যেন আমরা পাথনমে ওয়াইল্ডকার্ড ব্যবহার করতে পারি এজন্য --wildcards অপশনটি ব্যবহার করেছি। এবং শেষে ওয়াইল্ডকার্ড এর মাধ্যমে সকল 'file-A' নামের ফাইলগুলো সিলেক্ট করেছি।

zip ও unzip

zip একই সাথে কম্প্রেস ও আর্কাইভ দুটোই করে। আমরা আমাদের playground ফোল্ডারটি সব কন্টেন্টসহ zip করতে চাইলে লিখতে পারি:

me@howtocode-pc:~$ zip -r playground.zip playground

-r অপশন দিয়ে রিকার্সিভ বোঝানো হয়েছে।

unzip করতে আমরা লিখতে পারি:

me@howtocode-pc:~$ unzip playground.zip
Previousডাটা কম্প্রেশনNextdtrx

Last updated 6 years ago