私のファイルは混乱しているので、それらを再帰的なクラス内訳の意味で説明する名前のフォルダーに構造化しようとしますが、後でそれを探しているときに再びファイルを見つけることができません(1つのファイルはおそらく多くのフォルダに存在します)。
フォルダを使用する代わりにタグの組み合わせでファイルを検索できるファイルシステムは何ですか?
このようなファイルシステムがあった場合、OSがフォルダシステムに深く依存しているため、OSがどのように対処するかはわかりません。 tag2find に出くわしましたが、それほど悪くはありません。それは今のところ物を見つけることで私の問題を解決しますが、それはファイルシステムではなく、アプリケーションです。
求めているのは、 データベースファイルシステム です。 [〜#〜] dbfs [〜#〜] と呼ばれるLinuxの実験的な実装を知っています。 Microsoftは開発を開始しました Windows Future Storage(WinFS) -Vistaで出荷する予定でしたが、技術的な問題によりプロジェクトが遅れ、私の知る限り最終的にキャンセルされました。 [〜#〜] ntfs [〜#〜] は、ファイルのメタデータを保存することもできますが、フル機能のデータベースファイルシステムを拡張することはできません。
このようなファイルシステムのオペレーティングシステムへの統合は、オペレーティングシステムのコアにとってそれほど複雑なものではありません。階層モデルに固執するだけです。複雑な部分は、ファイルシステムの構造と機能をユーザーに公開する必要がある(グラフィカルな)シェルです。
Googleを使用して見つけたいくつかのファイルシステムを次に示します。
TagFS-「階層ファイルシステムのタグセマンティクス」論文、Stephan BloehdornおよびMaxVölkel、2006年 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187
dhtfs-「タグ付けベースのファイルシステム、ファイルに関連付けられたタグに基づいて動的ディレクトリ階層を提供」使用可能な実装、最終リリース2007 http://code.google.com/p/dhtfs/
Tagsistant-「LinuxおよびBSD用の推論セマンティックファイルシステム」プロジェクトが活発に開発されています http://www.tagsistant.net/
Leaftag-「Linuxデスクトップのタグ付け」別の実装、最終リリース2006 http://www.chipx86.com/w/index.php/Leaftag
OSとの統合については、それほど難しいとは思わない。 OSはファイルシステム階層に深く依存していますが、タグベースのファイルシステムはディレクトリ構造を模倣できます。たとえば、タグベースのファイルシステムでは、パス/etc/init.d
は、「etc」と「init.d」の2つのタグでタグ付けされたすべてのファイルを提供します。これらの2つのタグと同様に他のタグでタグ付けされたファイルの場合、追加のタグは/etc/init.d内のディレクトリとして表示されます。 「etc」、「init.d」、「asdf」の3つのタグを持つファイルa.txtがある場合、「asdf」は/etc/init.d内のディレクトリとして表示され、a.txtのフルパスは/になります。 etc/init.d/asdf/a.txt。
私はLinuxプログラムの作成者です [〜#〜] tmsu [〜#〜] これにより、ファイルにタグを付け、タグベースのファイルシステムで表示できます。
以下に使用例を示します。
$ tmsu tag track.mp3 music genre=indie-rock good year=1999
$ tmsu tag melody.mp3 music
$ tmsu tag DC123.jpg photo landscape country=italy year=2014
$ tmsu files music year = 1999
./song.mp3
そして、仮想ファイルシステム:
$ mkdir mp
$ tmsu mount mp
$ ls mp
query tags
$ ls tags
country genre good landscape photo music year
$ ls tags/music
genre good track.1.mp3 melody.2.mp3 year
ファイル名の数字は、ファイル名を一意に保つための識別子です。これらは、ファイルの元の場所に戻るシンボリックリンクです。
$ ls tags/music/good # you can drill down
genre track.1.mp3 year
$ ls "query/music and good" # this directory gets automatically created
track.1.mp3
まだ活発に開発されています。執筆時点(2014年10月)では0.4.2が利用可能ですが、0.5.0を近日中にリリースする予定です。
VistaおよびWindows 7は、ファイルのタグ付けをサポートしています。 この記事を参照
tagfs を試してください。これは、ヒューズベースのユーザースペースファイルシステムです。タグフィルタービューでソースディレクトリからタグ付きディレクトリを表示できます。
例えば。 「india」と「photos」のタグが付けられたディレクトリ「vacation india」と、「spain」と「photos」のタグが付けられたディレクトリ「vacation spain」があるとします。パス「/ my_mountpoint/photos」を入力して、すべての写真をフィルタリングできます。
ディレクトリは、単純なテキストファイルでタグ付けされます。ディレクトリ内の「.tag」という名前のファイルにはタグが含まれています。複数のタグは改行で区切られます。
ファイルシステムのファイルタグについて同じ質問をしているときに、この質問に出会いました。それから TaggedFrog というmayというWindows XP/Vista用のこのアプリケーションに出会いました。まだ試していませんが、有望に見えます。
しかし、数千のファイルを処理することを楽しみにしていません!とにかく、私はいつかWin7にアップグレードせざるを得ず、ネイティブのタグ付けを試すことができます。
Elyse のUIデザインが素晴らしいことがわかりました。ただし、フォルダを監視したり、新しいファイルにデフォルトのタグを自動的にタグ付けしたりすることはできません。
それらを試したり、野生で見たりすることなく、例えば
ウィンドウには TagsForAll があります。タグに基づくファイルマネージャーです。タグは階層構造を持つことができます。ユーザーインターフェイスは非常にシンプルですが、すてきです。無料バージョンは完全に機能し、タグをデータベースに保存します。ProバージョンはNTFSストリーム内でファイルにタグを保存します。
タグベースのファイルシステムについても長い間考えてきました。もっと急進的でシンプルなアプローチを考えた人はいますか?フォルダーを完全に忘れて(プログラムの互換性のためだけにシミュレートされたフォルダー)、すべてのタグをファイル名に直接入れます。
(クラシックファイル名)_Tag1_Tag2_Tag3 _...。(ファイル拡張子)
Mydocument_tag-based-file-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt
ファイル名にはできるだけ多くの情報を入れたいと思っています。考えられるすべてのOSで数百万のファイルにすべてを見つけることができます。
唯一の制限は、evey OSの異なるファイル名の長さであり、現在のシステムでは面倒です。
次のようなファイルにアクセスできる高度なOS:Mydocument.txtタグは、今日のファイル名の変更のように、OSの最下位レベルで編集できます。突然別のMydocument.txtがある場合は、Mydocument(2).txtなどに自動的に名前が変更されます。
このアイデアには追加の問題がないわけではなく、ここでも言及されていません。
しかし、このアイデアは、過去および将来のすべてのファイルシステムからアクセスできる最も基本的な低レベルの可能性でタグを保存しようとしています。そして、すべてのFSに共通しているのはファイル名です。
タグ付け自体はサポートされていないと思いますが、 [〜#〜] bfs [〜#〜] はかなりクールなメタデータ機能をサポートします。