Hệ thống tệp sử dụng thẻ thay vì thư mục?


122

Các tệp của tôi là một mớ hỗn độn, tôi cố gắng cấu trúc chúng thành các thư mục có tên mô tả chúng là gì theo nghĩa phân tích lớp đệ quy nhưng sau đó, tôi gặp khó khăn khi tìm lại tệp khi tôi tìm kiếm nó (một tệp có thể tồn tại trong nhiều thư mục).

Hệ thống tệp nào sẽ cho phép tôi tìm tệp của mình bằng cách kết hợp các thẻ thay vì sử dụng thư mục?

Nếu có một hệ thống tệp như vậy, tôi không chắc hệ điều hành sẽ đối phó như thế nào, phụ thuộc rất nhiều vào hệ thống thư mục. Tôi đã xem qua tag2find , nó không quá tệ; nó giải quyết vấn đề của tôi với việc tìm kiếm nội dung bây giờ nhưng nó là một ứng dụng, không phải một hệ thống tệp.



2
(kể từ năm 2013) Gmail đã có sẵn hệ thống này với các thư email của bạn. Bây giờ để yêu cầu họ triển khai nó trong Google Drive!
chharvey

câu hỏi này cũng tương tự như cái này
chharvey

2
Tôi đã nghĩ về điều này, một hệ thống như vậy có thể loại bỏ hoàn toàn các thư mục và thậm chí cả tên tệp (chưa kể các tiện ích mở rộng vô nghĩa). Theo cách mà đường dẫn, tên và mã định danh duy nhất của tệp sẽ chỉ là tập hợp các thẻ được áp dụng cho tệp đó. Và thậm chí sau đó, có thể có nhiều hơn một tệp có cùng một bộ thẻ, tại sao không. Ký hiệu có thể giống nhau, ví dụ như document/report/2015/finance/v2.01thứ tự của các thẻ không quan trọng. Điều tuyệt vời về điều này là bạn có thể chỉ cung cấp một số thẻ chứ không phải tất cả và vẫn truy cập được [các] tệp bạn muốn.
Petruza

1
@Petruza Tôi nghĩ rằng việc có một thẻ ID duy nhất cho mọi tệp có thể khiến việc quản lý thẻ trở nên phức tạp. Tên tệp vẫn sẽ là một thuộc tính hữu ích ngoài các thẻ chung hơn.
jiggunjer

Câu trả lời:


34

Những gì bạn đang yêu cầu là Hệ thống tệp cơ sở dữ liệu . Tôi biết về một triển khai thử nghiệm cho Linux có tên là DBFS . Microsoft bắt đầu phát triển Windows Future Storage (WinFS) - dự định sẽ phát hành cùng với Vista nhưng do các vấn đề kỹ thuật nên dự án đã bị trì hoãn và theo như tôi biết thì cuối cùng đã bị hủy bỏ. NTFS cũng có khả năng lưu trữ siêu dữ liệu cho tệp nhưng không mở rộng hệ thống tệp cơ sở dữ liệu đầy đủ tính năng.

Việc tích hợp một hệ thống tệp như vậy vào một hệ điều hành không quá phức tạp đối với lõi của hệ điều hành - nó có thể chỉ đơn giản là gắn bó với mô hình phân cấp. Phần phức tạp là shell (đồ họa) phải hiển thị cấu trúc và khả năng của hệ thống tệp cho người dùng.


2
yea, WinFS đã bị hủy bỏ vào khoảng năm 2006: p. Có thể thử DBFS một lúc.
clinux,

5
Tôi tin rằng chúng còn được gọi là hệ thống tệp ngữ nghĩa hoặc hệ thống tệp quan hệ.
jiggunjer

37

Đây là một số hệ thống tệp mà tôi tìm thấy bằng cách sử dụng google.

TagFS - Bài báo "Ngữ nghĩa thẻ cho Hệ thống tệp phân cấp" của Stephan Bloehdorn và Max Völkel, 2006 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - "Hệ thống tệp dựa trên gắn thẻ, cung cấp cấu trúc phân cấp thư mục động dựa trên thẻ được liên kết với tệp" một triển khai có thể sử dụng được, bản phát hành cuối cùng 2007 http://code.google.com/p/dhtfs/

Tagsistant - "Một hệ thống tệp ngữ nghĩa lý luận cho Linux và BSD" đang được phát triển tích cực http://www.tagsistant.net/

Leaftag - "Gắn thẻ cho máy tính để bàn Linux" một triển khai khác, bản phát hành cuối cùng năm 2006 http://www.chipx86.com/w/index.php/Leaftag

Về tích hợp với hệ điều hành, tôi không nghĩ nó phải khó đến vậy. Hệ điều hành phụ thuộc sâu vào hệ thống phân cấp hệ thống tệp nhưng hệ thống tệp dựa trên thẻ có thể bắt chước cấu trúc thư mục. Ví dụ: trong hệ thống tệp dựa trên thẻ, đường dẫn /etc/init.dsẽ cung cấp cho tất cả các tệp được gắn thẻ chính xác bằng hai thẻ tức là 'etc' và 'init.d'. Đối với các tệp được gắn thẻ bằng các thẻ khác cũng như hai thẻ này, các thẻ phụ của chúng có thể xuất hiện dưới dạng thư mục bên trong /etc/init.d. Nếu có một tệp a.txt có ba thẻ tức là 'etc', 'init.d' & 'asdf' thì 'asdf' sẽ xuất hiện dưới dạng thư mục bên trong /etc/init.d và đường dẫn đầy đủ của a.txt sẽ trở thành / etc / init.d / asdf / a.txt.


@clinux: Đây là một cái khác gần đây, Fuse :: TagLayer , mặc dù nó có vẻ là chỉ đọc.
isync

35

Tôi là tác giả của chương trình Linux TMSU cho phép bạn gắn thẻ tệp và xem chúng trong hệ thống tệp dựa trên thẻ.

Đây là một số ví dụ sử dụng:

$ 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

Và hệ thống tệp ảo:

$ 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

Các số trong tên tệp là số nhận dạng ở đó để giữ cho tên tệp là duy nhất. Đây là những liên kết tượng trưng trở lại vị trí ban đầu của tệp.

$ 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

Nó vẫn đang được phát triển tích cực. Tại thời điểm viết bài (tháng 10 năm 2014) 0.4.2 có sẵn nhưng tôi sẽ sớm phát hành 0.5.0.


1
Có cách nào để sử dụng cái này với Windows không?
Jonathan

1
@Jonathan, vâng, có một bản dựng Windows cũ mà bạn có thể thử. Lưu ý rằng nó có một chút lỗi và không có hỗ trợ VFS. Tôi luôn có ý định làm một cổng thích hợp nhưng tôi muốn đưa cốt lõi đến trạng thái tốt trước.
Paul Ruane

Nghe tuyệt đấy Paul :)
Jonathan


4

Hãy thử các thẻ tag . Đó là một hệ thống tệp không gian người dùng dựa trên cầu chì. Nó có thể hiển thị các thư mục được gắn thẻ từ một thư mục nguồn trong chế độ xem bộ lọc thẻ.

Ví dụ: giả sử bạn có một thư mục 'đi nghỉ ở Ấn Độ' được gắn thẻ 'Ấn Độ' và 'ảnh' và thư mục 'đi nghỉ ở Tây Ban Nha' được gắn thẻ 'Tây Ban Nha' và 'ảnh'. Bạn có thể lọc tất cả ảnh của mình bằng cách nhập đường dẫn '/ my_mountpoint / photos'.

Các thư mục được gắn thẻ thông qua một tệp văn bản đơn giản. Một tệp có tên '.tag' trong thư mục chứa các thẻ. Nhiều thẻ được phân tách bằng dòng mới.


3

Tôi gặp câu hỏi này trong khi tự hỏi mình câu hỏi tương tự về thẻ tệp hệ thống tệp. Sau đó tôi đi qua ứng dụng này cho Windows XP / Vista gọi TaggedFrog rằng có thể làm các trick. Chưa thử, nhưng có vẻ hứa hẹn.

Mặc dù vậy, tôi không mong muốn xem qua 1000 tệp! Bằng mọi giá, tôi sẽ buộc phải nâng cấp lên Win7 tại một thời điểm nào đó và có thể thử gắn thẻ gốc của nó.


Tôi tin rằng TaggedFrog cũng hỗ trợ các phiên bản Windows mới hơn.
jiggunjer


2

TagsForAll cho cửa sổ. Nó là một trình quản lý tệp dựa trên các thẻ. Các thẻ có thể có cấu trúc phân cấp. Giao diện người dùng rất đơn giản nhưng đẹp. Phiên bản miễn phí có đầy đủ chức năng và lưu các thẻ trong cơ sở dữ liệu, phiên bản Pro lưu thẻ cũng trong luồng NTFS vào một tệp.


2

Tôi thấy thiết kế giao diện người dùng của Elyse thật tuyệt vời. Nhưng nó là một hệ thống tĩnh hơn, nó không thể xem thư mục và tự động gắn thẻ tệp mới bằng thẻ mặc định.


1

Tôi cũng đã nghĩ về hệ thống tệp dựa trên thẻ trong một thời gian dài. Có ai nghĩ về cách tiếp cận cấp tiến và đơn giản hơn không? Để quên hoàn toàn các thư mục (chỉ các thư mục mô phỏng vì lý do tương thích với chương trình) và đặt tất cả các thẻ trực tiếp vào tên tệp.

(Tên tệp cổ điển) _Tag1_Tag2_Tag3 _..... (Phần mở rộng tệp)

Mydocument_tag-based-file-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

Tôi luôn muốn đưa càng nhiều thông tin vào tên tệp càng tốt. Bạn có thể tìm thấy mọi thứ trong hàng triệu tệp trên mọi hệ điều hành có thể.

Giới hạn duy nhất là độ dài tên tệp khác nhau trong evey OS và nó trở nên lộn xộn với các hệ thống hiện tại.

Một hệ điều hành nâng cao có thể truy cập vào một tệp như thế này: Mydocument.txt Và các Thẻ có thể được chỉnh sửa ở cấp thấp nhất của Hệ điều hành, như thay đổi Tên tệp ngay hôm nay. Nếu đột nhiên có một Mydocument.txt khác, nó sẽ tự động được đổi tên thành Mydocument (2) .txt, v.v.

Tôi biết ý tưởng này không phải là không có vấn đề bổ sung, thậm chí không được đề cập ở đây .....

Nhưng Ý tưởng sắp lưu trữ các thẻ trong khả năng cơ bản nhất ở mức thấp, có thể được truy cập từ TẤT CẢ các hệ thống tệp trong quá khứ và tương lai. Và điểm chung của tất cả các FS là tên tệp.


Điều này có vẻ giống như một cách triển khai DBFS rất thô sơ.
Chuu

Bạn đang trộn táo và cam. Tất cả điều này là di chuyển cấu trúc phân cấp từ thư mục sang tên tệp. Hay nói cách khác, "tất cả trong một thư mục" và "thẻ trong tên tệp" không có ý nghĩa trong thế giới dựa trên thẻ. Và tất nhiên bạn sẽ không muốn các chương trình ứng dụng phải xử lý 10.000 tệp tin, do đó hệ điều hành sẽ phải phân phối tệp một cách hiệu quả dựa trên thông số kỹ thuật của thẻ. Vì vậy, ứng dụng gửi cho Hệ điều hành các "thẻ" mà nó cần để "xác định tệp" và ... bạn đang quay lại ngay các thư mục hoặc một trong các hệ thống tệp thay thế được đề cập ở đây.
CoolHandLouis

Windows explorer có giới hạn đường dẫn là 255 ký tự, có thể dễ dàng đạt được. Nếu không, giới hạn sẽ được quy định bởi giới hạn FS trên tên tệp. Vâng, khá thô, nhưng vẫn là một ý tưởng hay. Nếu bạn muốn lưu trữ siêu dữ liệu trong tệp và lọc nó ở mức thấp, có thể có những cách khác ít hạn chế hơn, chẳng hạn như thêm hoặc thêm dữ liệu vào tệp hoặc có tệp "trợ giúp" có cùng tên tệp nhưng khác tiện ích mở rộng, sẽ chứa siêu dữ liệu. Một vấn đề khác là chỉ cần đổi tên thẻ có thể yêu cầu hàng triệu thao tác sửa đổi tệp.
Rolf

Thực ra ý tưởng này được thực hiện bởi TagSpaces .
Arnie97

0

Tôi không nghĩ rằng có (có) hỗ trợ gắn thẻ nhưng BFS hỗ trợ một số chức năng siêu dữ liệu khá thú vị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.