জিপ এবং টার.gz ফাইলগুলি ফাইল সিস্টেমে ডিরেক্টরি হিসাবে একীভূত করা সম্ভব?


14

আমি ভাবছি যদি সেখানে সংহত করার কোনও উপায় থাকে (এটি মাউন্টিং থেকে কিছুটা আলাদা, আমি মনে করি) ফাইল সিস্টেমে ডিরেক্টরি হিসাবে সংকুচিত ফাইলগুলি?

উদাহরণস্বরূপ, কেউ compressed-file.tar.gzতার স্থানীয় হার্ড ড্রাইভে একটি ডাউনলোড করতে পারে , তারপরে cd compressed-file.tar.gzসংক্রামিত ফোল্ডারের মধ্যে থেকে কোনও স্ক্রিপ্ট চালাতে বা cp some-file ..ফাইলগুলির একটি বের করার জন্য করতে পারে।

আমি জানি যে Btrfs সংক্ষেপণ সমর্থন করে, তবে এই বৈশিষ্ট্যটি সমর্থন করার জন্য আমার কাছে থাকা ফাইল সিস্টেমটি (এক্সট্রি 3) পরিবর্তন করতে চাই না।

উত্তর:


20

archivemountসংরক্ষণাগার যেমন মাউন্ট করতে আপনি কমান্ডটি ব্যবহার করতে পারেন .tar.gz

$ ls
files.tgz    mnt/

$ archivemount files.tgz mnt

$ ls mnt
file1    file2

[... Perform desired read/write operations on the archive via mnt/ ...]

$ umount mnt

[... Any changes are saved to the archive ...]

archivemountআরও তথ্যের জন্য ম্যান পৃষ্ঠা দেখুন । এটি প্রায়শই ইনস্টল করা হয় না তাই আপনার প্যাকেজটি ইনস্টল করার সম্ভাবনা রয়েছে। এটিও বলা হয় archivemount। ফেডোরা ১৯-তে, উদাহরণস্বরূপ:

$ sudo yum install archivemount

তথ্যসূত্র


8

আপনি হয় কোনও FUSEফাইল সিস্টেমের কথা বলছেন (ইউজারস্পেসের ফাইল সিস্টেম - লিনাস তাদের খেলনা বলে ) বা একটি কাস্টম সংকলিত কার্নেল বা squashfs. Squashআপনার বর্ণনার মতো ঠিক নয় - উদাহরণস্বরূপ আপনি কেবল একটি টারবাল মাউন্ট করতে পারবেন না - কার্নেল সমর্থিত ভিএফএসের সাথে নয়, তবে - আপনি অবশ্যই mksquashযেকোনও ফাইল বা ডিরেক্টরি পরিচালনা করতে পারেন এবং ফলাফল সংরক্ষণাগারটি কেবল পঠন করতে পারেন। আপনার xz, lzma, or gzসংকোচন পছন্দ আছে । Squashসর্বদা ব্যবহৃত হয় - আপনি যদি কখনও লাইভ লিনাক্স চিত্র ব্যবহার করেন তবে তা খুব ভাল ছিলsquashed.

আমি আপনাকে যে কৌশলটি ব্যবহার করব তার সাথে squashfs.আমি একটি btrfsচিত্র ফাইল তৈরি করতে চাই এবং btrfstune -S 1এটিকে seedভলিউম বানাতে চাই । আমি তখন একটি চিত্র squashfsসংরক্ষণাগারে রেখেছি । সেখানে আমি করতে পারেন থেকে এবং মধ্যে থেকে ইমেজ। mount -o loopimage.sfsmount -o loopbtrfs

btrfs seedভলিউম প্রাথমিকভাবে যেমন মাউন্ট হবে read-onlyবিবেচনা করা যে এটি একটি মধ্যে অন্তর্ভুক্ত হচ্ছে হবে বলে আশা করা যা - squashedলুপ মাউন্ট। তবে আমি যদি তখন করি:

GB_tmp_loop=$(
    fallocate -l $((1024*1024*1024)) /tmp/1GB_tmp.img &&
    losetup -f --show $_
)
btrfs device add "$GB_tmp_loop" "${btrfs_seed=/path/to/btrfs_image_mount}"
umount "$btrfs_seed"
mount -o compress-force=lzo,autodefrag,rw "$GB_tmp_loop" "$btrfs_seed"

হঠাৎ সুবিধার সুযোগ গ্রহণ করছি btrfsগুলি copy-on-writeকার্যকারিতা এবং স্বয়ংক্রিয় লেখার কম্প্রেশন এবং squashfs সব RAM- র মধ্যে উচ্চতর কম্প্রেশন গুলি ইন-কার্নেল।


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

2
@ মোহসেন - আমি পুরোপুরি বুঝতে পেরেছি এবং সম্ভবত আমিও এটি করতাম - এটি আরও বেশি বিষয় ছিল। কখনও কখনও আমরা যে উত্তরগুলির জন্য জিজ্ঞাসা করি সেগুলি আমরা পাই না - এবং এটি সম্ভবত খুব ভাল বিষয়, যেহেতু আমরা সেই জায়গাগুলি যা প্রথম স্থানে জিজ্ঞাসা করা দরকার। যাই হোক না কেন, আমি মন্তব্য খুব প্রশংসা করি।
মাইকজারভেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.