क्या फ़ाइल सिस्टम की तार्किक संरचना (सिम्लिंक लक्ष्यों सहित) को एकल हल्के फ़ाइल (गैर-बाइनरी) में दर्शाया जा सकता है?


12

वर्षों में कई SQL और NoSQL डेटाबेस के साथ खेलने के बाद मुझे अपने व्यक्तिगत ऐप में पोर्टेबिलिटी सुनिश्चित करने का सबसे अच्छा तरीका लगता है जो डेटा-केंद्रित हैं वे सभी अलाउड डेटाबेस से पूरी तरह से बचते हैं। मैं फाइल सिस्टम को एक खूबसूरत डेटाबेस प्रतिमान के रूप में देखता हूं जो पोर्टेबल, मानवीय पठनीय है और इस प्रकार दीर्घायु है जो कि मेरे द्वारा लिखे जा रहे व्यक्तिगत अनुप्रयोगों के प्रकार के लिए पर्याप्त है। यह एक ग्राफ़ डेटाबेस की तरह है जो कई रिश्तों को दर्शाने के लिए सहजीवन के साथ एक पेड़-संरचना (विभाजन के लिए अच्छा) को लागू करता है।

क्या संपूर्ण फ़ाइल सिस्टम टोपोलॉजी को एकल फ़ाइल के रूप में निर्यात करने का कोई तरीका है? एक findकमांड का आउटपुट आशाजनक है, लेकिन डेटा को निर्यात करने के लिए कोई मानकीकृत तरीका नहीं है जो इंगित करता है कि एक सिमलिंक क्या इंगित करता है। मैं findआउटपुट फॉर्मेट की अपनी निजी पसंद के साथ नहीं आना चाहता :

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

अगर किसी ने पहले फ़ाइल सिस्टम टोपोलॉजी निर्यात प्रारूप स्थापित करने का काम किया है।

एक अन्य उम्मीदवार एक JSON फाइल है:

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

कमांड के नए संस्करण HTML, XML या JSON पर भी आउटपुट होंगे।

XML आउटपुट:

<?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 आउटपुट नहीं है जैसा कि मैं व्यक्तिगत रूप से पसंद करता हूं, लेकिन मुझे यकीन है कि मैक उपयोगकर्ता उस तथ्य की सराहना करेंगे जो इसमें बनाया गया है।
श्रीधर सरनोबत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.