কোনও ফাইল সিস্টেমের লজিক্যাল স্ট্রাকচার (সিমলিংক লক্ষ্যগুলি সহ) একটি একক লাইটওয়েট ফাইলে (নন-বাইনারি) প্রতিনিধিত্ব করা যেতে পারে?


13

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

একটি ফাইল হিসাবে পুরো ফাইল সিস্টেম টপোলজি রফতান করার উপায় আছে? findকমান্ডের আউটপুট আশাব্যঞ্জক, তবে ডেটা রফতানি করার কোনও মানক উপায় নেই যা একটি সিমলিংক নির্দেশ করে। আমি নিজের ব্যক্তিগত findআউটপুট ফর্ম্যাটের পছন্দগুলি যেমন আসতে চাই না :

/home/me/photos/beach/me_and_my_dog.jpg -> /home/me/photos/beach/1.jpg

যদি কেউ আগে কোনও ফাইল সিস্টেম টপোলজি এক্সপোর্ট ফর্ম্যাট স্থাপনের কাজ করে থাকে the

অন্য প্রার্থী হলেন একটি জেএসওএন ফাইল:

home : [{
    me : [{
        photos : [{
            beach : [{
                1.jpg,
                { me_and_my_dog.jpg : ./1.jpg }
            }]
        }]
    }
}]

তবে আবার ফাইল ধরণের উপস্থাপনের একাধিক উপায় রয়েছে এবং আমি অবাক হয়েছি যে কেউ ইতিমধ্যে একটি স্ট্যান্ডার্ড প্রতিষ্ঠার কাজটি করেছেন কিনা।

নোট করুন যে আমি ফাইলগুলির বিষয়বস্তু রফতানি করতে চাই না - এটি রফতাকে প্রয়োজনের চেয়ে অনেক বড় করে তুলবে।

উত্তর:


14

treeকমান্ডের আউটপুটটি আপনি যা খুঁজছেন তা প্রদর্শিত হবে বলে মনে হচ্ছে:

.
└── photos
    └── beach
        ├── 1.jpg -> me_and_dog.jpg
        └── me_and_dog.jpg

কমান্ডের আরও নতুন সংস্করণগুলি এইচটিএমএল, এক্সএমএল বা জেএসওনে আউটপুট করবে।

এক্সএমএল আউটপুট:

<?xml version="1.0" encoding="UTF-8"?>
<tree>
  <directory name=".">
    <directory name="photos">
      <directory name="beach">
        <link name="1.jpg" target="me_and_dog.jpg"></link>
        <file name="me_and_dog.jpg"></file>
      </directory>
    </directory>
  </directory>
  <report>
    <directories>2</directories>
    <files>2</files>
  </report>
</tree>

2
ওহ বাহ, আমি যা চাই ঠিক তাই চাই। আমি treeকমান্ডটি সম্পর্কে সচেতন ছিলাম (যা দুর্দান্ত) তবে আমি বুঝতে পারিনি যে এটি এখন পার্সেবল ফর্ম্যাটগুলিকে সমর্থন করে।
শ্রীধর সারনোবাত

1
দ্রষ্টব্য: এই treeকমান্ডটি লিনাক্স সংস্করণ। উইন্ডোজ সংস্করণ এখনও সহজ "ট্রি" আউটপুট।
কোল জনসন

2

আপনি mtreeএই জন্য ব্যবহার করতে পারেন । দেখুন www.freebsd.org/cgi/man.cgi?query=mtree&sektion=8&manpath=FreeBSD+6.3-RELEASE এবং code.google.com/p/mtree-port

mtree -c

এটা খুব বহুমুখী।


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