تحويل الملفات المتطابقة باستخدام الروابط الصلبة [مغلقة

StackOverflow https://stackoverflow.com/questions/1719109

سؤال

لدي بعض الملفات المتطابقة المخزنة في أكثر من مكان واحد على القرص الثابت الخاص بي. أنا الرقم يمكنني توفير مساحة كبيرة من القرص عن طريق ربطها بشدة للإشارة إلى نفس الملف. أنا قلق قليلا بشأن الآثار الجانبية الكارثية ربما.

أعتقد أنه لا يؤثر على الأذونات، حيث يتم تخزين تلك الموجودة في الدلائل المعنية، تماما مثل اسم الملف، أليس كذلك؟ (تحديث: على ما يبدو، خمنت خطأ، يتم مشاركة الأذونات، كما يوضح كارل في إجابته)

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

هل هناك أي شيء آخر يجب مراعاته؟

أنا على OS X / HFS +.

هل كانت مفيدة؟

المحلول

لا تستخدم الروابط الصلبة إذا كنت تريد إجراء تغييرات في ملف واحد لا يجب أن تنعكس في ملفات أخرى. هذه هي النقطة كلها من الروابط الصلبة - إدخالات دليل متعددة ل نفس الملف (نفس الكتل على القرص). تغيير الأذونات على أحد أسماء الرابط الثابت يغيرها على حد سواء:

$ touch file
$ ln file link
$ ls -l
total 0
-rw-r--r--  2 owner group  0 Nov 11 16:44 file
-rw-r--r--  2 owner group  0 Nov 11 16:44 link
$ chmod 444 file
$ ls -l
total 0
-r--r--r--  2 owner group  0 Nov 11 16:44 file
-r--r--r--  2 owner group  0 Nov 11 16:44 link

من ln صفحة الرجل:

رابط ثابت إلى ملف لا يمكن تمييزه عن إدخال الدليل الأصلي؛ أي تغييرات في ملف مستقلة بشكل فعال من الاسم المستخدم للإشارة إلى الملف.

نصائح أخرى

كتبت القليل من النصي للقيام بذلك فقط. سأكون قلقا فقط بشأن الأذونات إذا تم دمج النسخ الاحتياطي لديك عدة مستخدمين أو ملفات النظام.

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

الآن تبدو جميع أحجام النسخ الاحتياطي كأنها ستكون على خلاف ذلك ومعظم الملفات الزائدة. الوثائق الواحدة هي أن الكثير من ملفات الوسائط تخزن البيانات الوصفية في محتويات الملفات، لذلك كل إصدار مختلف قليلا. يرى هذه المقالة للحصول على رمز بيثون. لا توجد ضمانات !!!

تأكد من أن تفعل mdimport your_backup_dir/ بعد ذلك: أضواء الأضواء والمكتشف الحصول على بعض الشيء عند القيام بمعالجة البيانات الهائلة. لقد قمت بإلغاء تكرار مجلد النسخ الاحتياطي 240 جيجابايت بهذه الطريقة واستغرق الأمر حوالي 45 دقيقة.

لاحظ أيضا، معظم تطبيقات OSX ستقسم روابطك الثابتة وحفظها في INODE جديدة، ربما تحافظ معظم تطبيقات Unix'y على الروابط الصعبة (باستثناء emacs، أسمع).

hardlinks ليست عموما أفضل الممارسات. يجب أن تخدم الروابط اللينة / الرمزية القديمة (LN -S) أيضا.

إذا كان هدفك الأساسي هو "DEDUPE Time Machine Backups" كما ذكرت في أحد التعليقات، فستكون خيارا آخر يتجنب بعض مخاوفك هو القضاء على Dupes من آلة الوقت باستخدام تفضيلات آلة الزمن. وبعد يمكنك استبعاد الدليل أو مستوى الملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top