Saya telah mencari cara untuk menandai file saya dan mencari / memfilternya berdasarkan tag tersebut.
Berikut adalah persyaratan (yang diperbarui ) saya:
- file apa pun yang dapat dibaca oleh pengguna dapat ditandai secara bebas
- pengguna dapat mencari file yang cocok dengan satu atau beberapa tag
- file dapat dipindahkan tanpa kehilangan tag terkait sebelumnya
- sistem dapat didukung dengan mudah
- tidak ada ketergantungan pada lingkungan desktop apa pun
- jika ada gui yang terlibat, pasti ada fallback cli
Saya berharap ada beberapa filesystem dasar & peretas coreutils untuk menangani hal ini, tetapi saya belum memikirkan hal ini dengan cukup keras.
Sementara itu saya akan mengulas beagle dan metatracker, yang telah disebutkan di sini, dan melihat bagaimana kinerjanya.
Ok jadi beagle memiliki dependensi gnome yang besar, dan pelacaknya okish, tetapi masih memiliki beberapa dependensi yang saya tidak suka ...
Telah melakukan penelitian lebih lanjut, dan cara untuk pergi bisa sangat diperluas dengan atribut file .
Itu adalah solusi asli untuk kebanyakan filesystem terbaru, tetapi mereka belum didukung dengan sangat baik (sebagian besar coreutils menghancurkannya secara default, cp misalnya membutuhkan tanda -a untuk melestarikannya). Ingin mendengar beberapa pemikiran tentang penggunaannya sementara saya mencoba sendiri beberapa retasan, walaupun ini mungkin memerlukan pertanyaan baru.
sumber
Jawaban:
Tidak jelas pencarian seperti apa yang Anda inginkan. Jika Anda ingin itu berfungsi di mana saja di unix, bukan hanya direktori home Anda, dan Anda hanya ingin melakukan pencarian berbasis pathname, skema berikut ini bisa diterapkan, dengan sedikit peretasan shell, dan menggunakan standar
locatedb
:.path-tags
;_
) memiliki tautan$TAG_$FILE -> ../$FILE
Saya menyerahkan detail
locate-tag
naskahnya kepada Anda; harus berupa dua atau tiga baris, hanya menggunakanlocate
perintah dan shell hackery. (Jika Anda tertarik, saya bisa menulis satu).Beberapa bab KDE berbicara tentang skema semacam ini untuk metadata, meskipun saya tidak ingat detailnya.
Seharusnya juga dimungkinkan untuk melakukan tes pemeriksaan konten yang lebih canggih berdasarkan skema ini dengan skrip yang serupa
find
.Pikiran tentang persyaratan yang diperbarui
$TAG_$INODE_$FILE
dan kami memiliki cara yang efisien untuk menemukan jalur mana yang memiliki inode yang diberikan , maka kita bisa melakukan ini, kehilangan tag hanya jika kita keluar dari sistem file. Menyalin file mungkin membuat beberapa masalah, dan ini jelas lebih rumit daripada saran asli saya.Postscript File "reverse-inode-lookup" yang dijelaskan oleh tautan (2) yang Anda tunjukkan pada jawaban Anda untuk (1) dapat digunakan untuk memberikan beberapa infrastruktur tambahan. Kita dapat menjalankan layanan pada file pencarian terbalik, yang memeriksa bahwa setiap inode yang diberikan dalam nama file tag cocok dengan inode file (jika ada) tag menunjuk ke. Jika tidak ada kecocokan, maka operasi yang diperlukan dapat dilakukan (apakah inode masih ada? Di mana itu?), Dan file pencarian terbalik dimutasi atau dibuat ulang, dan tag symlink diperbarui.
Saya mengantisipasi satu kasus rumit: bagaimana jika file yang ditandai tidak sesuai dengan tag yang seharusnya, file reverse lookup mengatakan itu masih ada, tetapi file yang hilang tidak di mana file pencarian mengatakan itu, file pencarian keluar dari tanggal? Ada beberapa cara untuk menangani kasus ini, tidak ada yang jelas ideal. Terlepas dari ini, seluruh tugas ini tampaknya menjadi jenis Perl yang sangat cocok untuk ...
sumber
Saya baru saja merilis alpha dari program baru saya yang mencoba menyediakan fungsionalitas ini. Saat ini memenuhi beberapa, tetapi tidak semua, persyaratan Anda. Mungkin ini menarik bagi Anda. Ini menyediakan alat baris perintah untuk penandaan dan sistem file virtual untuk browsing (di mana tag diwakili oleh direktori).
http://www.tmsu.org/
Iya.
Iya. Baik melalui alat baris perintah atau dengan menelusuri direktori tag di sistem file virtual.
Tidak. Namun aplikasi menyimpan sidik jari dari file yang ditandai yang digunakan untuk membantu mengidentifikasi file yang dipindahkan. Perintah 'perbaikan' disediakan yang akan memperbarui jalur file yang dipindahkan. (Jelas mekanisme ini rusak jika suatu file dipindahkan dan dimodifikasi.)
Iya. Ini adalah file database Sqlite 3 yang sederhana.
Iya. Tidak ada dependensi dan karena dapat dijalankan sebagai sistem file virtual, tersedia untuk dibaca sebagai sistem file dalam program apa pun yang mendukung tautan simbolik.
Tidak ada GUI saat ini.
sumber
mv
,cp
danrm
yang menangani tag Anda juga (sebut mereka misalnyatmv
,tcp
dantrm
) maka orang tidak akan kehilangan tag setidaknya jika seseorang menggunakan commandline untuk memindahkan file di sekitar ...tmsu-fs-mv
,tmsu-fs-rm
dantmsu-fs-merge
.Saya pikir ini mungkin memenuhi semua kebutuhan Anda. Bagaimanapun, ini adalah kode yang keren:
http://pages.stern.nyu.edu/~marriaga/software/oyepa
GUI memerlukan Qt, tetapi ada aplikasi baris perintah untuk mencari dan fakta bahwa semua tag sebenarnya dalam nama file membuatnya sepele untuk memanipulasi tag | file dari cli.
sumber
Tidak ada yang disebutkan, tetapi Anda harus melihat atribut sistem file yang diperluas. ext4 misalnya memilikinya. ada alat getfattr dan setfattr untuk menghadapinya. Tentu saja Anda harus menulis beberapa skrip shell untuk mencari file yang ditandai dengan sesuatu. Mengenai pertanyaan yang disebutkan, semua jawabannya adalah "Ya". Anda hanya harus mempertimbangkan bahwa itu tergantung pada sistem file.
sumber
Terkejut bahwa tidak ada yang menyebut TagSpaces . Memenuhi semua persyaratan Anda karena tag disimpan dalam nama file dan TagSpaces adalah lintas-platform.
sumber
Anda mungkin tidak perlu menginstal seluruh desktop KDE untuk pustaka penandaan mereka, Nepomuk. Anda masih harus menginstal pustaka dasar KDE, meskipun ...
sumber
Artikel terbaru tentang Linux Desktop Search Tools menyebutkan bahwa Tracker mendukung penandaan. Sayangnya itu seharusnya setengah rusak di versi lama yang mereka uji. Mungkin sudah diperbaiki sekarang?
sumber
Coba Beagle . Saya merasa cukup bagus.
Mungkin tidak memenuhi semua persyaratan, dan saya tidak yakin apa yang bisa. Misalnya, apakah file FIFO mendukung atribut yang diperluas? Jika tidak, Beagle memiliki database cadangan.
sumber
Beberapa alternatif lain mungkin tahan tag , tagfs atau dantalian .
sumber
Jadi Anda tidak akan menemukan integrasi Nepomuk di gnome, di baris perintah, atau di tempat lain di Linux.
Sebaliknya, dengan Pelacak Anda tidak akan menemukan integrasi kde AFAIK. Tidak yakin tentang CLI.
Jadi sayangnya, jawabannya tampaknya "tidak".
Yang lebih sayangnya, ini tidak berarti ada peluang bagus untuk membangunnya. Utilitas Linux commandline tidak memiliki banyak kesamaan dengan manajer file GUI, misalnya, jadi secara arsitektur tidak ada komponen umum yang dapat diperluas untuk mendukung konsep.
sumber
Saya membuat program kecil yang menggunakan SQLite untuk tujuan ini. Itu menyelesaikan kebutuhan saya, tapi mungkin itu membantu Anda juga:
https://github.com/alvatar/dfym
Satu-satunya masalah dengan pendekatan ini adalah yang tidak disinkronkan dengan gerakan dan penghapusan, tetapi itu memecahkan masalah untuk file yang relatif statis.
sumber
TMSU
Terkejut tidak ada yang menyebutkannya.
sumber
Saya sarankan untuk melihat sistem kontrol versi seperti Subversion untuk jenis-jenis fitur di atas dan di luar sistem file. Beberapa mungkin lebih cocok untuk Anda daripada yang lain tetapi umumnya:
Contoh cli dengan Subversion:
~/svn/atestrepository: $ svn propset mytag "something" dir1 property 'mytag' set on 'dir1' $ svn propset myothertag "nothing" dir1/file1 property 'myothertag' set on 'dir1/file1' $ svn propset anemptytag "" dir1/file2 property 'anemptytag' set on 'dir1/file2'
$ svn propget -R mytag dir1 - something ~/svn/atestrepository: $ svn propget -R myothertag dir1/file1 - nothing $ svn propget -R anemptytag dir1/file2 - $ svn proplist dir1/file2 Properties on 'dir1/file2': anemptytag svn:keywords
Saya tidak akan merekomendasikan alat ini untuk besar (ukuran gigabyte) secara teratur mengubah file biner tetapi untuk semua yang lain mereka sudah terbukti dengan baik dan skala ke ukuran yang sangat besar.
sumber