it-swarm.asia

ما هو الحل الجيد لوضع علامات على الملفات في نظام التشغيل Linux؟

لقد كنت أبحث عن طريقة لوضع علامة على الملفات الخاصة بي والبحث عنها/تصفيتها بناءً على تلك العلامات.

فيما يلي متطلبات ( المحدثة :

  • يمكن تمييز أي ملف قابل للقراءة من قبل المستخدم بحرية
  • يمكن للمستخدم البحث عن ملفات مطابقة لعلامة واحدة أو عدة علامات
  • يمكن نقل الملفات دون فقدان العلامات المرتبطة مسبقًا
  • يمكن نسخ النظام بسهولة
  • لا تبعيات على أي بيئة سطح المكتب
  • إذا كان هناك أي واجهة المستخدم الرسومية المعنية ، يجب أن يكون هناك احتياطي المبادرة القطرية

لقد كنت أتمنى أن تقوم بعض أنظمة الملفات والملفات الأساسية بالتطفل على هذا الأمر ، لكنني لم أفكر في هذا الأمر بشكل كافٍ حتى الآن.
في هذه الأثناء سأقوم بمراجعة beagle و metatracker ، والتي تم ذكرها هنا ، ومعرفة كيفية أدائها.


حسنًا ، تحتوي بيغل على تبعيات جنوم ضخمة ، والمتعقب على ما يرام ، ولكن لا يزال لديه بعض التبعيات التي لا أحبها ...

تم إجراء المزيد من الأبحاث ، وقد تكون طريقة الانتقال سمات الملفات الموسعة .
هذا حل أصلي لمعظم أنظمة الملفات الحديثة ، لكنه ليس مدعومًا جيدًا حتى الآن (معظم المواد الأساسية تدمرها افتراضيًا ، يحتاج cp على سبيل المثال إلى العلم - للحفاظ عليها). أود أن أسمع بعض الأفكار حول استخدامها بينما أحاول يدي على بعض الاختراقات بنفسي ، على الرغم من أن هذا قد يستدعي سؤالًا جديدًا.

68
julien

ليس من الواضح نوع البحث الذي تريده. إذا كنت تريد أن تعمل في أي مكان في نظام يونكس ، وليس فقط دليلك الرئيسي ، وتريد فقط إجراء عمليات البحث المستندة إلى اسم المسار ، يكون المخطط التالي قابلاً للتطبيق ، مع القليل من اختراقات شركة Shell ، واستخدام معيار locatedb:

  1. يحتاج كل دليل يحتوي على ملف محدد واحد على الأقل إلى دليل فرعي قياسي ، قل .path-tags؛
  2. كل ملف في الدليل $ FILE مع رابط $ TAG (والذي يجب ألا يحتوي على الحرف _) لديه رابط $TAG_$FILE -> ../$FILE

أترك تفاصيل البرنامج النصي locate-tag لك ؛ يجب أن يكون بطولتين أو ثلاثة خطوط ، فقط باستخدام أمر locate ومسلسل شل. (إذا كنت مهتمًا ، يمكنني كتابة واحدة).

تحدثت بعض فصول KDE عن هذا النوع من المخطط للبيانات الوصفية ، على الرغم من أنني لا أتذكر التفاصيل.

يجب أن يكون من الممكن أيضًا إجراء اختبارات أكثر تطوراً وفحصًا للمحتوى استنادًا إلى هذا المخطط بنص مشابه ملفوف حول find.

أفكار حول المتطلبات المحدثة

  1. يمكن تمييز أي ملف يمكن للمستخدم قراءته بحرية - نعم ، يجب ألا تكون هناك مشكلة
  2. يمكن للمستخدم البحث عن ملفات تطابق علامة أو عدة علامات - بالمثل
  3. يمكن نقل الملفات دون فقدان العلامات المرتبطة مسبقًا - يمكن نقل الدلائل التي يقيمون بها بحرية ، ولكن إذا تم نقل الملف من الدليل ، فنحن في ورطة. إذا أخذت العلامات النموذج $TAG_$INODE_$FILE ولدينا طريقة فعالة للعثور على المسارات التي لها inode معين ، فيمكننا القيام بذلك ، وفقدان العلامات فقط إذا ننتقل من أنظمة الملفات. قد يؤدي نسخ الملفات إلى بعض المشاكل ، ومن الواضح أن هذا الأمر أكثر تعقيدًا من اقتراحي الأصلي.
  4. يمكن نسخ النظام احتياطيًا بسهولة - ليس صعبًا بشكل أساسي.
  5. لا توجد تبعيات على أي بيئة سطح مكتب - لا شيء
  6. إذا كان هناك أي واجهة تعامل معنية (GUI) ، يجب أن يكون هناك احتياطي cli - حيث نعيش!

بوستسكريبت ملف "عكس inode-lookup" الموصوف بالرابط (2) أظهرته لي في إجابتك على (1) يمكن استخدامها لإعطاء بعض البنية التحتية الإضافية. يمكننا تشغيل خدمة على ملف البحث العكسي ، والذي يتحقق من أن كل inode المعطى في اسم ملف العلامة يتطابق مع inode الخاص بالملف (إن وجد) الذي تشير إليه العلامة. إذا لم يكن هناك تطابق ، فيمكن إجراء الجراحة المطلوبة (هل لا يزال يوجد inode؟ أين هو؟) ، وملف البحث العكسي إما يتم تحويره أو تجديده ، ويتم تحديث الارتباطات الموجودة بالعلامة.

أتوقع حالة واحدة صعبة: ماذا لو لم يكن الملف ذو العلامات هو المكان الذي يجب أن تكون العلامات فيه ، يقول ملف البحث العكسي إنه لا يزال موجودًا ، لكن ملف الضال ليس هو المكان الذي يقول فيه ملف البحث ، ملف البحث هو خارج تاريخ؟ هناك عدة طرق للتعامل مع هذه الحالة ، لا شيء مثالي بشكل واضح. بصرف النظر عن هذا ، يبدو أن هذه المهمة برمتها هي نوع الشيء الذي يناسب بيرل ...

12
Charles Stewart

لقد أصدرت للتو ألفا من برنامجي الجديد يحاول توفير هذه الوظيفة. يفي حاليًا ببعض ، وليس كل ، متطلباتك. قد يكون من مصلحة لك على أي حال. يوفر أداة سطر أوامر للتوسيم ونظام ملفات افتراضي للتصفح (حيث يتم تمثيل العلامات بواسطة الدلائل).

http://www.tmsu.org/

يمكن تمييز أي ملف قابل للقراءة من قبل المستخدم بحرية

نعم فعلا.

يمكن للمستخدم البحث عن ملفات مطابقة لعلامة واحدة أو عدة علامات

نعم فعلا. إما عن طريق أداة سطر الأوامر أو عن طريق تصفح أدلة العلامات في نظام الملفات الظاهري.

يمكن نقل الملفات دون فقدان العلامات المرتبطة مسبقًا

لا. ومع ذلك ، يقوم التطبيق بتخزين بصمات الملفات التي تم تمييزها والتي يتم استخدامها للمساعدة في تحديد الملفات المنقولة. يتم توفير أمر "إصلاح" سيؤدي إلى تحديث مسارات الملفات المنقولة. (من الواضح أن هذه الآلية تنهار إذا تم نقل وتعديل ملف.)

يمكن نسخ النظام بسهولة

نعم فعلا. إنه ملف قاعدة بيانات Sqlite 3 بسيط.

لا تبعيات على أي بيئة سطح المكتب

نعم فعلا. لا توجد تبعيات ، ويمكن تشغيلها كنظام ملفات افتراضي ، وهي متاحة للاطلاع عليها كنظام ملفات في أي برنامج يدعم الروابط الرمزية.

إذا كان هناك أي واجهة المستخدم الرسومية المعنية ، يجب أن يكون هناك احتياطي المبادرة القطرية

لا واجهة المستخدم الرسومية في الوقت الحاضر.

22
Paul Ruane

مندهش من أن لا أحد قد ذكر TagSpaces . يلبي جميع الاحتياجات الخاصة بك لأنه يتم تخزين العلامات في اسم الملف و TagSpaces هو منصة مشتركة.

TagSpaces

6
Dan Dascalescu

أعتقد أن هذا قد يلبي جميع متطلباتك. في أي حال ، هو رمز رائع:

http://pages.stern.nyu.edu/~marriaga/software/oyepa

تتطلب واجهة المستخدم الرسومية Qt ، ولكن يوجد تطبيق لسطر الأوامر للبحث وحقيقة أن جميع العلامات موجودة فعليًا في اسم الملف ، مما يجعل التعامل مع علامات | ملفات من cli أمرًا تافهًا.

6
laramichaels

لم يشر أحد إلى ذلك ، لكن من المؤكد أنك يجب أن تنظر إلى سمات نظام الملفات الموسعة. ext4 على سبيل المثال لديه منهم. هناك أدوات getfattr و setfattr للتعامل معها. بالطبع سوف تضطر إلى كتابة بعض البرامج النصية لشركة شل للبحث عن الملفات التي تحمل علامات sometag. فيما يتعلق بالأسئلة المذكورة ، كل الإجابات "نعم". يجب أن تأخذ فقط في الاعتبار أنه يعتمد على نظام الملفات.

5
alik

ربما لا تحتاج إلى تثبيت سطح مكتب KDE بالكامل لمكتبة العلامات الخاصة بهم ، Nepomuk. لا يزال يتعين عليك تثبيت مكتبات KDE الأساسية ، على الرغم من ...

5
anon

جرب بيغل . أجد أنه جيد جدا.

قد لا يلبي جميع المتطلبات ، ولست متأكدًا مما يمكن. على سبيل المثال ، هل تدعم ملفات FIFO السمات الموسعة؟ إذا لم يفعلوا ذلك ، لدى Beagle قاعدة بيانات احتياطية.

2
pcapademic

قد تكون بعض البدائل الأخرى tagasistant أو tagfs أو dantalian .

2
student

تشير هذه المقالة الحديثة أدوات بحث سطح المكتب لنظام Linux إلى أن Tracker يدعم وضع العلامات. لسوء الحظ ، من المفترض أن تكون نصف مكسورة في الإصدار القديم الذي اختبروه. ربما هو ثابت الآن؟

  1. ليس نظام واسع.
  2. يمكنك عمل نسخة احتياطية منه.
  3. انها واحدة مع جنوم.
2
Iain

لذلك لن تجد تكامل Nepomuk في جنوم ، في سطر الأوامر ، أو في أي مكان آخر في لينكس.

على العكس ، مع Tracker لن تجد kde integration AFAIK. لست متأكدا من CLI.

لسوء الحظ ، يبدو أن الإجابة "لا".

للأسف ، هذا لا يعني وجود فرصة جيدة هنا لبناء واحدة أيضًا. لا تملك أدوات سطر أوامر Linux الكثير من القواسم المشتركة مع مدير ملفات واجهة المستخدم الرسومية ، على سبيل المثال ، لذلك من الناحية المعمارية لا يوجد مكون مشترك يمكن توسيعه لدعم المفهوم.

1
pbr

أنا جعلت برنامج صغير يستخدم سكليتي لهذا الغرض. لقد حلت حاجتي ، ولكن ربما يساعدك أيضًا:

https://github.com/alvatar/dfym

المشكلة الوحيدة في هذا الأسلوب هي أنه لا يتزامن مع التحركات والحذف ، ولكنه يحل المشكلة بالنسبة للملفات الثابتة نسبيًا.

0
alvatar

TMSU

TMSU هي أداة لوضع علامات على ملفاتك. يوفر أداة مساعدة بسيطة لسطر الأوامر لتطبيق العلامات ونظام ملفات افتراضي لإعطائك طريقة عرض قائمة على ملفاتك من أي برنامج آخر.

لا يغير TMSU ملفاتك بأي شكل من الأشكال: تظل كما هي دون تغيير على القرص ، أو على الشبكة ، أينما وضعت. يحتفظ TMSU بقاعدة البيانات الخاصة به ويمكنك ببساطة الحصول على عرض إضافي ، يمكنك تحميله حسب رغبتك ، بناءً على العلامات التي قمت بإعدادها.

فوجئت لا أحد قد ذكر ذلك.

0
justsomeguy