Bir dosya sisteminin mantıksal yapısı (sembolik hedefler dahil) tek bir hafif dosyada (ikili olmayan) gösterilebilir mi?


13

Yıllar boyunca birden fazla SQL ve NoSQL veritabanıyla oynadıktan sonra, veri odaklı olan kişisel uygulamalarmdaki taşınabilirliği sağlamak için en iyi yolu hissediyorum, tüm iyi niyetli veritabanlarından tamamen kaçınmaktır. Dosya sistemini taşınabilir, insan tarafından okunabilen ve dolayısıyla yazdığım kişisel uygulamalar için yeterli olan uzun ömürlü güzel bir veritabanı paradigması olarak görüyorum. Bir ağaç yapısını (bölümleme için iyi) uygulayan bir grafik veritabanı gibidir ve semboller birebir ilişkileri temsil eder.

Tüm dosya sistemi topolojisini tek bir dosya olarak dışa aktarmanın bir yolu var mı? Bir findkomutun çıkışı umut vericidir, ancak bir sembolik bağlantının neyi işaret ettiğini gösteren verileri dışa aktarmanın standart bir yolu yoktur. Kendi kişisel findçıktı biçimi seçimimi bulmak istemiyorum :

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

Birisi daha önce bir dosya sistemi topolojisi dışa aktarma biçimi oluşturma işini yapmışsa.

Başka bir aday JSON dosyası:

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

ancak yine de dosya türlerini temsil etmenin birden fazla yolu var ve birisinin zaten bir standart oluşturma işini yapıp yapmadığını merak ediyorum.

Dosyaların içeriğini dışa aktarmak istemediğime dikkat edin - bu, dışa aktarmayı gereğinden fazla büyütür.

Yanıtlar:


14

treeKomutun çıktısı aradığınızı gösteriyor gibi görünüyor:

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

Komutun yeni sürümleri HTML, XML veya JSON'a bile gönderilir.

XML Çıkışı:

<?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
Oh vay canına, tam da bunu istiyorum. tree(Bu harika) komutun farkındaydım ama şimdi ayrıştırılabilir formatları desteklediğini fark etmedim.
Sridhar Sarnobat

1
NOT: Bu treekomut Linux sürümüdür. Windows sürümü hala yalnızca basit "ağaç" çıktısını verir.
Cole Johnson

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.