Cấu trúc logic của hệ thống tệp (bao gồm các mục tiêu liên kết tượng trưng) có thể được biểu diễn trong một tệp nhẹ (không nhị phân) không?


13

Sau khi chơi với nhiều cơ sở dữ liệu SQL và NoQuery trong nhiều năm, tôi cảm thấy cách tốt nhất để đảm bảo tính di động trong các ứng dụng cá nhân của mình là trung tâm dữ liệu là tránh hoàn toàn tất cả các cơ sở dữ liệu bonafide. Tôi thấy hệ thống tệp là một mô hình cơ sở dữ liệu đẹp, có thể di động, con người có thể đọc được và do đó có tuổi thọ đủ cho loại ứng dụng cá nhân tôi đang viết. Nó giống như một cơ sở dữ liệu đồ thị thực thi cấu trúc cây (tốt cho phân vùng), với các liên kết tượng trưng để thể hiện các mối quan hệ nhiều-một.

Có cách nào để xuất toàn bộ cấu trúc liên kết hệ thống tệp dưới dạng một tệp không? Đầu ra của một findlệnh có triển vọng, nhưng không có cách nào được chuẩn hóa để xuất dữ liệu cho biết những gì một liên kết tượng trưng chỉ đến. Tôi không muốn đưa ra lựa chọn cá nhân của mình về findđịnh dạng đầu ra, chẳng hạn như:

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

nếu ai đó trước đây đã thực hiện công việc thiết lập định dạng xuất cấu trúc liên kết hệ thống tệp.

Một ứng cử viên khác là một tệp JSON:

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

nhưng một lần nữa, có nhiều cách biểu diễn các loại tệp và tôi tự hỏi liệu ai đó đã thực hiện công việc thiết lập một tiêu chuẩn.

Lưu ý rằng tôi không muốn xuất nội dung của tệp - điều đó sẽ khiến việc xuất lớn hơn nhiều so với mức cần thiết.

Câu trả lời:


14

Đầu ra của treelệnh dường như hiển thị những gì bạn đang tìm kiếm:

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

Các phiên bản mới hơn của lệnh thậm chí sẽ xuất ra HTML, XML hoặc JSON.

Đầu ra 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
Ồ wow, đó chính xác là những gì tôi muốn. Tôi đã nhận thức được treelệnh (rất tuyệt vời) nhưng tôi không nhận ra rằng nó hiện hỗ trợ các định dạng có thể phân tích cú pháp.
Sridhar Sarnobat

1
LƯU Ý: treeLệnh này là phiên bản Linux. Phiên bản Windows vẫn chỉ xuất ra "cây" đơn giản.
Cole Johnson

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.