Klasörler yerine etiketleri kullanan dosya sistemi?


122

Dosyalarım karmakarışık, onları yinelemeli sınıf ayrımı anlamında ne olduklarını açıklayan adlara sahip klasörler halinde yapılandırmaya çalışıyorum, ancak daha sonra onu aramaya gittiğimde dosyayı tekrar bulmakta sorun yaşıyorum (bir dosya muhtemelen birçok klasörde bulunur).

Hangi dosya sistemi dosyalarımı klasörler kullanmak yerine bir etiket kombinasyonu ile bulmama izin verir?

Böyle bir dosya sistemi olsaydı, işletim sistemlerinin klasör sistemine bu kadar derinden bağlı olduğundan nasıl başa çıkacağından emin değilim. Çok kötü olmayan tag2find ile karşılaştım ; şimdilik bir şeyler bulma sorunumu çözdü ama bu bir dosya sistemi değil, bir uygulamadır.



2
(2013 itibariyle) Gmail, e-posta iletilerinizde bu sisteme zaten sahiptir. Şimdi onları Google Drive'a uygulamalarını sağlamak için!
chharvey

Bu soru benzer bu bir
chharvey

2
Bunu düşündüm, böyle bir sistem klasörlerden ve hatta dosya adlarından tamamen kurtulabilir (uzantıların saçmalıklarından bahsetmiyorum bile). Öyle ki, bir dosyanın yolu, adı ve benzersiz tanımlayıcısı, sadece ona uygulanan etiketler kümesi olacaktır. Ve o zaman bile, aynı etiket kümesine sahip birden fazla dosya olabilir, neden olmasın. Gösterim aynı olabilir, örneğin document/report/2015/finance/v2.01etiketlerin sırasının önemli olmadığı durumlarda. Bununla ilgili harika olan şey, bazı etiketlerin tümünü değil de, ancak yine de istediğiniz dosyaya / dosyalara ulaşabilmenizdir.
Petruza

1
@Petruza Her dosya için benzersiz bir kimlik etiketine sahip olmanın etiket yönetimini zorlaştırabileceğini düşünüyorum. Dosya adları, daha genel etiketlere ek olarak yine de yararlı bir özellik olacaktır.
jiggunjer

Yanıtlar:


34

İstediğiniz şey bir Veritabanı Dosya Sistemi . DBFS adında Linux için deneysel bir uygulama biliyorum . Microsoft, Windows Future Storage (WinFS) geliştirmeye başladı - Vista ile birlikte gönderilmesi planlanmıştı, ancak teknik sorunlar nedeniyle proje ertelendi ve bildiğim kadarıyla nihayet iptal edildi. NTFS ayrıca dosyalar için meta verileri depolayabilir, ancak tam özellikli bir veritabanı dosya sisteminin bir uzantısı için saklayamaz.

Böyle bir dosya sisteminin bir işletim sistemine entegrasyonu, işletim sisteminin çekirdeği için o kadar karmaşık olmamalıdır - sadece hiyerarşik modele bağlı kalabilir. Karmaşık kısım, dosya sisteminin yapısını ve yeteneklerini kullanıcıya göstermesi gereken (grafiksel) kabuktur.


2
evet, WinFS 2006 civarında iptal edildi: s. DBFS'yi bir ara deneyebilirsiniz.
Clinux

5
Sanırım bunlara anlamsal dosya sistemleri veya ilişkisel dosya sistemleri de deniyor .
jiggunjer

37

İşte google kullanarak bulduğum bazı dosya sistemleri.

TagFS - "Hiyerarşik Dosya Sistemleri için Etiket Semantiği" makalesi, Stephan Bloehdorn ve Max Völkel, 2006 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - Kullanılabilir bir uygulama, son sürüm 2007 http://code.google.com/p/dhtfs/ "Etiketleme tabanlı dosya sistemi, dosyalarla ilişkili etiketlere dayalı dinamik dizin hiyerarşileri sağlar"

Tagsistant - Aktif geliştirme aşamasındaki "Linux ve BSD için bir mantıksal anlamsal dosya sistemi" projesi http://www.tagsistant.net/

Leaftag - "Linux masaüstü için etiketleme" başka bir uygulama, son sürüm 2006 http://www.chipx86.com/w/index.php/Leaftag

İşletim sistemleriyle entegrasyon konusunda, bu kadar zor olması gerektiğini düşünmüyorum. İşletim sistemleri, dosya sistemi hiyerarşisine büyük ölçüde bağımlıdır, ancak etiket tabanlı dosya sistemi dizin yapısını taklit edebilir. Örneğin, etikete dayalı bir dosya sisteminde yol /etc/init.d, tam olarak iki etiketle etiketlenen tüm dosyaları, yani 'etc' ve 'init.d' verecektir. Diğer etiketlerle ve bu iki etiketle etiketlenen dosyalar için, fazladan etiketleri /etc/init.d içinde dizinler olarak görünebilir. Üç etiketli bir a.txt dosyası varsa, örn. 'Etc', 'init.d' ve 'asdf' o zaman 'asdf' /etc/init.d içinde dizin olarak görünecek ve a.txt'nin tam yolu / olacaktır. etc / init.d / asdf / a.txt.


@clinux: İşte yeni bir tane daha, Fuse :: TagLayer , salt okunur gibi görünse de.
isync

35

Dosyaları etiketlemenizi ve etiket tabanlı bir dosya sisteminde görüntülemenizi sağlayan Linux programı TMSU'nun yazarıyım .

İşte bazı örnek kullanım:

$ 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

Ve sanal dosya sistemi:

$ 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

Dosya adlarındaki numaralar, dosya adlarını benzersiz tutmak için var olan tanımlayıcılardır. Bunlar, dosyaların orijinal konumlarına geri dönen sembolik bağlantılardır.

$ 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

Hala aktif geliştirme aşamasındadır. Yazım sırasında (Ekim 2014) 0.4.2 mevcut, ancak yakında 0.5.0'ı yayınlayacağım.


1
Bunu Windows ile kullanmanın bir yolu var mı?
Jonathan

1
@Jonathan, evet deneyebileceğiniz eski bir Windows yapısı var. Biraz hatalı olduğunu ve VFS desteği olmadığını unutmayın. Doğru bir bağlantı noktası yapmak için uğraşmaya devam ediyorum ama önce çekirdeği iyi bir duruma getirmek istiyorum.
Paul Ruane

Kulağa harika geliyor Paul :)
Jonathan


4

Deneyin Tagf'leri . Sigorta tabanlı bir kullanıcı alanı dosya sistemidir. Etiket filtresi görünümünde bir kaynak dizinden etiketli dizinleri gösterebilir.

Örneğin, 'hindistan' ve 'fotoğraflar' etiketli bir 'tatil hindistan' dizininiz ve 'ispanya' ve 'fotoğraflar' etiketli bir 'tatil ispanya' dizininiz olduğunu varsayalım. Tüm fotoğraflarınızı '/ my_mountpoint / photos' yolunu girerek filtreleyebilirsiniz.

Dizinler basit bir metin dosyasıyla etiketlenir. Dizindeki '.tag' adlı bir dosya etiketleri içerir. Birden çok etiket, yeni satırlarla ayrılır.


3

Dosya sistemi dosya etiketleri hakkında kendime aynı soruyu sorarken bu soruyla karşılaştım. Sonra Windows XP için bu uygulama rastladı / Vista denilen TaggedFrog o olabilir hile yapmak. Henüz denemedim ama umut verici görünüyor.

Yine de 1000 dosyadan geçmeyi dört gözle beklemiyorum! Her halükarda, bir noktada Win7'ye yükseltmek zorunda kalacağım ve yerel etiketlemeyi deneyebilirim.


TaggedFrog'un Windows'un daha yeni sürümlerini de desteklediğine inanıyorum.
jiggunjer


2

Windows için TagsForAll vardır . Etiketlere dayalı bir dosya yöneticisidir. Etiketler hiyerarşik yapıya sahip olabilir. Kullanıcı arayüzü çok basit ama güzel. Ücretsiz sürüm tamamen işlevseldir ve etiketleri veritabanına kaydeder, Pro sürümü etiketleri de NTFS akışı içinde bir dosyaya kaydeder.


2

Elyse'nin UI tasarımının harika olduğunu buldum . Ancak, klasörü izleyememesi ve yeni dosyayı otomatik olarak varsayılan bir etiketle etiketleyememesi daha statik bir sistemdir.


1

Ben de uzun zamandır etiket tabanlı bir dosya sistemi düşünüyordum. Daha radikal ve basit bir yaklaşım düşünen oldu mu? Klasörleri tamamen unutmak için (simüle edilmiş klasörler yalnızca programların uyumluluk nedenleriyle) ve tüm etiketleri doğrudan dosya adına koyun.

(Klasik Dosya Adı) _Tag1_Tag2_Tag3 _..... (Dosya uzantısı)

Mydocument_tag tabanlı dosya-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

Dosya adına her zaman olabildiğince fazla bilgi eklemeyi seviyorum. Mümkün olan her işletim sisteminde her şeyi milyonlarca dosyada bulabilirsiniz.

Tek sınır, her işletim sistemindeki farklı dosya adı uzunluğudur ve mevcut sistemlerle karışır.

Gelişmiş bir işletim sistemi aşağıdaki gibi bir dosyaya erişebilir: Mydocument.txt Ve Etiketler, bugün Dosya adını değiştirmek gibi işletim sisteminin en alt seviyesinde düzenlenebilir. Birdenbire başka bir Mydocument.txt varsa, otomatik olarak Belgem (2) .txt olarak yeniden adlandırılır ve böyle devam eder.

Bu fikrin ek problemler olmadan olmadığını biliyorum, burada bahsedilse bile .....

Ancak Fikir, etiketleri TÜM geçmiş ve gelecekteki dosya sistemlerinden erişilebilen en temel düşük düzey olasılıkla depolamak üzere. Ve tüm FS'lerin ortak özelliği dosya adıdır.


Bu, bir DBFS'nin çok kaba bir uygulaması gibi görünüyor.
Chuu

Elmaları ve portakalları karıştırıyorsunuz. Bütün bunlar hiyerarşik yapıyı dizinden dosya adına taşımaktır. Ya da başka bir deyişle, "hepsi bir dizinde" ve "dosya adlarındaki etiketler", etiket tabanlı bir dünyada anlam ifade etmez. Ve tabii ki uygulama programlarının 10.000 dosyayla uğraşmak zorunda kalmasını istemezsiniz, böylece işletim sistemi dosyaları bir etiket özelliklerine göre verimli bir şekilde teslim etmek zorunda kalır . Böylece uygulama, işletim sistemine "dosyayı tanımlaması" için ihtiyaç duyduğu "etiketleri" gönderir ve ... hemen burada bahsedilen dizinlere veya alternatif dosya sistemlerinden birine geri dönersiniz.
CoolHandLouis

Windows gezgini, kolayca erişilebilen 255 karakterlik bir yol sınırına sahiptir. Aksi takdirde sınır, dosya adlarındaki FS sınırı tarafından belirlenmelidir. Oldukça kaba evet, ama yine de güzel bir fikir. Meta veriyi dosyada depolamak ve düşük bir seviyede filtrelemek istiyorsanız, daha az sınırlı başka yollar da olabilir, örneğin dosyaya veri eklemek veya önceden eklemek ya da aynı dosya adına sahip ancak farklı bir dosya adına sahip bir "yardımcı dosya" meta verileri içeren uzantı. Diğer bir sorun da, bir etiketi yeniden adlandırmanın milyonlarca dosya değiştirme işlemi gerektirebilmesidir.
Rolf

Aslında bu fikir TagSpaces tarafından uygulandı .
Arnie97

0

Kendi başına etiketleme desteğine sahip olduğunu düşünmüyorum, ancak BFS oldukça güzel meta veri işlevlerini destekliyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.