Saya baru saja merilis alfa dari program baru saya yang mencoba menyediakan fungsionalitas ini. Saat ini memenuhi beberapa, tapi tidak semua, kebutuhan Anda. Ini mungkin menarik bagi Anda. Ini menyediakan alat baris perintah untuk memberi tag dan sistem file virtual untuk menjelajah (di mana tag diwakili oleh direktori).
http://www.tmsu.org/
file apa pun yang dapat dibaca oleh pengguna dapat diberi tag dengan bebas
Ya.
pengguna dapat mencari file yang cocok dengan satu atau beberapa tag
Ya. Baik melalui alat baris perintah atau dengan menjelajahi direktori tag di sistem file virtual.
file dapat dipindahkan tanpa kehilangan tag terkait sebelumnya
Tidak. Namun aplikasi menyimpan sidik jari dari file yang diberi tag yang digunakan untuk membantu mengidentifikasi file yang dipindahkan. Perintah 'perbaikan' disediakan yang akan memperbarui jalur file yang dipindahkan. (Jelas mekanisme ini rusak jika file dipindahkan dan dimodifikasi.)
sistem dapat dicadangkan dengan mudah
Ya. Ini adalah file database Sqlite 3 sederhana.
tidak ada ketergantungan pada lingkungan desktop apa pun
Ya. Tidak ada ketergantungan dan karena dapat dijalankan sebagai sistem file virtual, ini tersedia untuk digunakan dengan teliti sebagai sistem file di program apa pun yang mendukung tautan simbolik.
jika ada gui yang terlibat, pasti ada cli fallback
Tidak ada GUI saat ini.
Tidak jelas pencarian seperti apa yang Anda inginkan. Jika Anda ingin bekerja di mana saja di unix, bukan hanya direktori home Anda, dan Anda hanya ingin melakukan pencarian berbasis pathname, skema berikut bisa diterapkan, dengan sedikit peretasan shell, dan menggunakan locatedb
:
- Setiap direktori yang berisi setidaknya satu file yang diberi tag memerlukan subdirektori standar, misalnya
.path-tags
; - Setiap file dalam direktori $FILE dengan link $TAG (yang seharusnya tidak berisi char
_
) memiliki tautan$TAG_$FILE -> ../$FILE
Saya meninggalkan detail locate-tag
naskah untuk Anda; itu harus berupa dua atau tiga baris, hanya menggunakan locate
perintah dan peretasan shell. (Jika Anda tertarik, saya bisa menulisnya).
Beberapa orang KDE berbicara tentang skema metadata semacam ini, meskipun saya tidak ingat detailnya.
Seharusnya juga dimungkinkan untuk melakukan pengujian pemeriksaan konten yang lebih canggih berdasarkan skema ini dengan skrip serupa yang dibungkus di sekitar find
.
Pemikiran tentang persyaratan yang diperbarui
- file apa pun yang dapat dibaca oleh pengguna dapat diberi tag secara bebas - Ya, seharusnya tidak ada masalah
- pengguna dapat mencari file yang cocok dengan satu atau beberapa tag - Demikian juga
- file dapat dipindahkan tanpa kehilangan tag terkait sebelumnya - Direktori yang mereka tempati dapat dipindahkan dengan bebas, tetapi jika file tersebut dipindahkan dari direktori, kami dalam masalah. Jika tag berbentuk
$TAG_$INODE_$FILE
dan kami memiliki cara yang efisien untuk menemukan jalur mana yang memiliki inode tertentu, lalu kami dapat melakukan ini, kehilangan tag hanya jika kami keluar dari sistem file. Menyalin file mungkin menimbulkan masalah, dan ini jelas lebih rumit daripada saran awal saya. - sistem dapat dicadangkan dengan mudah - pada dasarnya tidak sulit.
- tidak ada ketergantungan pada lingkungan desktop mana pun - tidak ada
- jika ada gui yang terlibat, pasti ada cli fallback - di situlah kita tinggal!
Surat akhir File "reverse-inode-lookup" yang dijelaskan oleh tautan (2) yang Anda tunjukkan pada jawaban Anda (1) dapat digunakan untuk memberikan beberapa infrastruktur tambahan. Kita dapat menjalankan layanan pada file pencarian balik, yang memeriksa bahwa setiap inode yang diberikan dalam nama file tag cocok dengan inode file (jika ada) yang ditunjuk oleh tag. Jika tidak ada kecocokan, maka operasi yang diperlukan dapat dilakukan (apakah inode masih ada? di mana?), dan file pencarian terbalik dimutasi atau dibuat ulang, dan symlink tag diperbarui.
Saya mengantisipasi satu kasus yang rumit:bagaimana jika file yang diberi tag tidak berada di tempat yang seharusnya menurut tag, file pencarian terbalik mengatakan itu masih ada, tetapi file yang hilang tidak berada di tempat yang dikatakan oleh file pencarian, file pencarian sedang keluar tanggal? Ada beberapa cara untuk menangani kasus ini, tidak ada yang ideal. Terlepas dari ini, seluruh tugas ini tampaknya merupakan hal yang sangat cocok untuk Perl...
Tidak ada yang disebutkan, tetapi Anda pasti 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 sometag. Mengenai pertanyaan yang disebutkan, semua jawabannya adalah "Ya". Anda hanya harus mempertimbangkan bahwa itu bergantung pada sistem file.