파일 시스템의 논리 구조 (symlink 대상 포함)를 단일 경량 파일 (이진이 아닌)로 표현할 수 있습니까?


13

몇 년 동안 여러 SQL 및 NoSQL 데이터베이스를 사용한 후 데이터 중심의 개인 앱에서 이식성을 보장하는 가장 좋은 방법은 모든 bonafide 데이터베이스를 완전히 피하는 것입니다. 필자는 파일 시스템을 이식 가능하고 사람이 읽을 수 있고 필자가 작성하는 개인 응용 프로그램의 유형에 충분한 수명을 가진 아름다운 데이터베이스 패러다임으로보고 있습니다. 그것은 다 대일 관계를 나타내는 심볼릭 링크가있는 트리 구조 (파티셔닝에 적합)를 시행하는 그래프 데이터베이스와 같습니다.

전체 파일 시스템 토폴로지를 단일 파일로 내보내는 방법이 있습니까? 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명령 (굉장하다) 을 알고 있었지만 구문 분석 가능한 형식을 지원한다는 것을 알지 못했습니다.
Sridhar Sarnobat

1
참고 :이 tree명령은 Linux 버전입니다. Windows 버전은 여전히 ​​간단한 "트리"만 출력합니다.
Cole Johnson

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.