何年にもわたって複数のSQLおよびNoSQLデータベースで遊んだ後、データ中心の個人用アプリの移植性を確保するための最善の方法は、すべての真正なデータベースを完全に回避することだと感じています。ファイルシステムは、移植性があり、人間が読める形式であるため、私が作成している個人用アプリケーションのタイプに十分な寿命を持つ美しいデータベースパラダイムだと思います。これは、多対1の関係を表すシンボリックリンクを備えたツリー構造(パーティション化に適しています)を適用するグラフデータベースのようなものです。
ファイルシステムトポロジ全体を単一のファイルとしてエクスポートする方法はありますか? find
コマンドの出力は有望ですが、シンボリックリンクが何を指しているかを示すデータをエクスポートする標準化された方法はありません。次のようなfind
出力形式を自分で選択することは考えたくありません。
/home/me/photos/beach/me_and_my_dog.jpg -> /home/me/photos/beach/1.jpg
誰かが以前にファイルシステムトポロジのエクスポート形式を確立する作業を行ったことがある場合。
もう1つの候補はJSONファイルです。
home : [{
me : [{
photos : [{
beach : [{
1.jpg,
{ me_and_my_dog.jpg : ./1.jpg }
}]
}]
}
}]
しかし、ファイルタイプを表す方法は複数あり、誰かがすでに標準を確立する作業を行っているのではないかと思います。
ファイルの内容をエクスポートしたくないことに注意してください。エクスポートが必要以上に大きくなります。
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>
これにはmtree
を使用できます。 www.freebsd.org/cgi/man.cgi?query=mtree&sektion=8&manpath=FreeBSD+6.3-RELEASE および code.google.com/p/mtree-port を参照してください。
mtree -c
それは非常に用途が広いです。