Dapatkah struktur logis sistem file (termasuk target symlink) direpresentasikan dalam satu file ringan (non-biner)?

12

Setelah bermain dengan beberapa database SQL dan NoSQL selama bertahun-tahun saya merasakan cara terbaik bagi saya untuk memastikan portabilitas dalam aplikasi pribadi saya yang berpusat pada data adalah untuk menghindari semua database bonafide sepenuhnya. Saya melihat sistem file sebagai paradigma basis data yang indah yang portabel, dapat dibaca manusia dan dengan demikian memiliki umur panjang yang cukup untuk jenis aplikasi pribadi yang saya tulis. Ini seperti basis data grafik yang menerapkan struktur pohon (baik untuk mempartisi), dengan symlink untuk mewakili hubungan banyak ke satu.

Apakah ada cara untuk mengekspor seluruh topologi sistem file sebagai satu file? Output dari sebuah findperintah sangat menjanjikan, tetapi tidak ada cara standar untuk mengekspor data yang menunjukkan apa yang ditunjuk oleh symlink. Saya tidak ingin memunculkan pilihan findformat output pribadi seperti:

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

jika seseorang sebelumnya telah melakukan pekerjaan membangun format ekspor topologi sistem file.

Kandidat lain adalah file JSON:

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

tetapi sekali lagi ada beberapa cara untuk mewakili jenis file dan saya ingin tahu apakah seseorang telah melakukan pekerjaan membangun standar.

Perhatikan bahwa saya tidak ingin mengekspor konten file - yang akan membuat ekspor jauh lebih besar dari yang dibutuhkan.

Sridhar Sarnobat
sumber

Jawaban:

14

Output dari treeperintah tampaknya menampilkan apa yang Anda cari:

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

Versi perintah yang lebih baru bahkan akan menghasilkan HTML, XML atau JSON.

Output 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>
astaga
sumber
2
Oh wow, itulah yang saya inginkan. Saya menyadari treeperintah (yang luar biasa) tetapi saya tidak menyadarinya sekarang mendukung format yang dapat diuraikan.
Sridhar Sarnobat
1
CATATAN: treePerintah ini adalah versi Linux. Versi Windows masih hanya menampilkan "pohon" sederhana.
Cole Johnson