フォルダではなくタグを使用するファイルシステム?


122

私のファイルはめちゃくちゃです、再帰的なクラスの内訳の意味でそれらが何であるかを説明する名前の付いたフォルダーにそれらを構造化しようとしますが、後でそれを探しに行くときにもう一度ファイルを見つけるのに問題があります(1つのファイルは多くのフォルダに存在します)。

フォルダを使用する代わりに、タグの組み合わせでファイルを検索できるファイルシステムは何ですか。

そのようなファイルシステムがあったとしても、OSがどのように対応するかはわかりません。フォルダーシステムに大きく依存しているからです。tag2findに出くわしましたが、それほど悪くはありません。それは今のところ物を見つけることで私の問題を解決しますが、それはファイルシステムではなくアプリケーションです。



2
(2013年現在)Gmailにはこのシステムがすでにあり、メールメッセージに対応しています。それでは、Googleドライブに実装してもらいましょう。
chharvey 2013年

この質問はこれと似ています
chharvey 2013年

2
私はこれについて考えました、そのようなシステムはフォルダーとファイル名さえも完全に取り除くことができます(ナンセンスな拡張子は言うまでもありません)。ファイルのパス、名前、および一意の識別子は、ファイルに適用されるタグのセットになるだけです。そしてそれでも、同じタグのセットを持つ複数のファイルが存在する可能性があります。表記は同じでもかまいdocument/report/2015/finance/v2.01ません。たとえば、タグの順序は関係ありません。これの素晴らしい点は、すべてではなくいくつかのタグを提供するだけで、必要なファイルにアクセスできることです。
ペトルザ

1
@Petruzaすべてのファイルに一意のIDタグを付けると、タグ管理が難しくなると思います。ファイル名は、より一般的なタグに加えて、依然として有用なプロパティです。
jiggunjer 2016

回答:


34

あなたが求めているのは、データベースファイルシステムです。Linuxの実験的な実装であるDBFSを知っています。MicrosoftはWindows Future Storage(WinFS)の開発を開始しました。Vistaに同梱される予定でしたが、技術的な問題によりプロジェクトが遅れ、最終的にはキャンセルされました。NTFSは、ファイルのメタデータを格納することもできますが、フル機能のデータベースファイルシステムを拡張することはできません。

このようなファイルシステムをオペレーティングシステムに統合することは、オペレーティングシステムのコアにとってそれほど複雑であってはなりません。単に階層モデルに固執するだけです。複雑な部分は、ファイルシステムの構造と機能をユーザーに公開する必要がある(グラフィカル)シェルです。


2
はい、WinFSは2006年頃にキャンセルされました:p。しばらくDBFSを試してみるかもしれません。
clinux

5
セマンティックファイルシステムまたはリレーショナルファイルシステムとも呼ばれていると思います。
jiggunjer 2016

37

ここに私がグーグルを使って見つけたいくつかのファイルシステムがあります。

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/

リーフタグ-「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。


@clinux:もう1つ最近のFuse :: TagLayerがありますが、読み取り専用のようです。
isync 2013

35

私はLinuxプログラムTMSUの作者です。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がリリースされます。


1
これをWindowsで使用する方法はありますか?
ジョナサン

1
@ジョナサン、はい、あなたが試すことができる古いWindowsビルドがあります。これは少しバグがあり、VFSサポートがないことに注意してください。適切な移植を行う意味を持ち続けますが、最初にコアを良好な状態にしたいと考えています。
Paul Ruane

素晴らしいポールのよう
ジョナサン


4

tagfsを試してください。これは、ヒューズベースのユーザースペースファイルシステムです。タグフィルタービューでソースディレクトリからタグ付けされたディレクトリを表示できます。

たとえば、「インド」と「写真」というタグが付けられた「休暇インド」というディレクトリと、「スペイン」と「写真」というタグが付けられた「休暇スペイン」というディレクトリがあるとします。パス「/ my_mountpoint / photos」を入力すると、すべての写真をフィルタリングできます。

ディレクトリは、単純なテキストファイルでタグ付けされます。ディレクトリ内の「.tag」という名前のファイルにはタグが含まれています。複数のタグは改行で区切られます。


3

ファイルシステムのファイルタグについて同じ質問をしているときに、この質問に出くわしました。Windows XP / Vistaが呼ばれるために、私は、このアプリケーションに出くわしたTaggedFrog トリックを行うに。まだ試していませんが、有望に見えます。

しかし、何千ものファイルを通過することを楽しみにしていない!とにかく、私はいつかWin7にアップグレードせざるを得なくなり、ネイティブのタグ付けを試すことができます。


TaggedFrogは新しいバージョンのWindowsもサポートしていると思います。
jiggunjer 2016


2

ありTagsForAllは窓のために。タグに基づくファイルマネージャーです。タグは階層構造を持つことができます。ユーザーインターフェースは非常にシンプルですが素晴らしいです。無料版は完全に機能し、データベースにタグを保存します。Proバージョンは、ファイルへのNTFSストリーム内でもタグを保存します。


2

ElyseのUIデザインは素晴らしいと思いました。ただし、フォルダーを監視して新しいファイルにデフォルトのタグを自動的にタグ付けできないのは、より静的なシステムです。


1

私はタグベースのファイルシステムについても長い間考えてきました。より過激でシンプルなアプローチについて誰かが考えたことはありますか?フォルダーを完全に忘れて(プログラムの互換性のためにシミュレートされたフォルダーのみ)、すべてのタグをファイル名に直接挿入します。

(クラシックファイル名)_Tag1_Tag2_Tag3 _....。(ファイル拡張子)

Mydocument_tagベースのファイルシステムsystem_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

私は常にファイル名にできるだけ多くの情報を入れたいと思っています。あらゆるOS上の何百万ものファイルからすべてを見つけることができます。

唯一の制限は、各OSでのファイル名の長さの違いであり、現在のシステムでは扱いにくくなります。

のある高度なOSは、次のようなファイルにアクセスできます。突然別のMydocument.txtが存在する場合、自動的にMydocument(2).txtに名前が変更されます。

このアイデアには、ここで言及されていない追加の問題がないわけではないことを知っています。

しかし、このアイデアは、過去および将来のすべてのファイルシステムからアクセスできる最も基本的な低レベルの可能性でタグを保存しようとしています。そして、すべてのFSに共通するのはファイル名です。


これは、DBFSの非常に大まかな実装のように聞こえます。
チュウ

リンゴとオレンジを混ぜています。これは、階層構造をディレクトリからファイル名に移動するだけです。または、言い換えると、「1つのディレクトリにすべて」と「ファイル名のタグ」は、タグベースの世界では意味がありません。そしてもちろん、アプリケーションプログラムが10,000のファイルを処理する必要がないので、OSはタグ仕様に基づいてファイルを効率的に配信する必要があります。したがって、アプリはOSに「ファイルを識別する」ために必要な「タグ」を送信します。...ここに記載されているディレクトリまたは代替ファイルシステムのいずれかに戻ります。
CoolHandLouis 2017年

Windowsエクスプローラーのパス制限は255文字で、簡単に到達できます。それ以外の場合は、ファイル名のFS制限によって制限を指定する必要があります。かなり粗雑ですが、それでも素晴らしいアイデアです。メタデータをファイルに保存し、それを低レベルでフィルタリングする場合は、データをファイルに追加または追加する、同じファイル名であるがサイドファイルが異なる「サイドカー」ファイルを使用するなど、他の制限の少ない方法がある可能性があります。メタデータを含む拡張子。別の問題は、単にタグの名前を変更すると、何百万ものファイル変更操作が必要になる可能性があることです。
Rolf

実際、このアイデアはTagSpacesによって実装されました
Arnie97

0

それ自体はタグ付けをサポートしていなかったと思いますが、BFSはかなりクールなメタデータ機能をサポートしています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.