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
:
- Setiap direktori yang berisi setidaknya satu file yang ditandai membutuhkan subdirektori standar, misalnya
.path-tags
;
- Setiap file dalam direktori $ FILE dengan tautan $ TAG (yang seharusnya tidak mengandung char
_
) memiliki tautan$TAG_$FILE -> ../$FILE
Saya menyerahkan detail locate-tag
naskahnya kepada Anda; harus berupa dua atau tiga baris, hanya menggunakan locate
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
- file apa pun yang dapat dibaca oleh pengguna dapat ditandai 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 yang terkait sebelumnya - Direktori yang mereka huni dapat dipindahkan dengan bebas, tetapi jika file tersebut dipindahkan dari direktori, kita dalam masalah. Jika tag mengambil bentuk
$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.
- sistem dapat didukung dengan mudah - pada dasarnya tidak sulit.
- tidak ada ketergantungan pada lingkungan desktop apa pun - tidak ada
- jika ada gui yang terlibat, pasti ada cli fallback - di situlah kita hidup!
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 ...