هل هناك طريقة لمعرفة ما اذا كان هناك روابط رمزية لافتا إلى الدليل ؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

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

ما قمت به هو تغيير يدويا روابط الرمزية للإشارة إلى المجلد الجديد ، لكني قد غاب عن زوجين.

هل هناك طريقة للتحقق مما إذا كان هناك أي روابط الرمزية لافتا إلى مجلد معين?

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

المحلول

أود أن استخدام الأمر "بحث".

find . -lname /particular/folder

التي سوف متكرر البحث في الدليل الحالي على روابط الرمزية إلى /particular/folder.علما بأنه سوف تجد فقط المطلق روابط الرمزية.مماثلة يمكن استخدام أمر البحث عن جميع روابط الرمزية مشيرا إلى كائنات تسمى "مجلد":

find . -lname '*folder'

من هناك كنت في حاجة للتخلص من أي ايجابيات كاذبة.

نصائح أخرى

يمكنك مراجعة روابط الرمزية مع على symlinks البرنامج كتبه مارك يارب وسوف تفحص كامل الملفات ، وتطبيع الارتباط الرمزي مسارات مطلقة شكل طباعتها إلى المعياري.

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

هل يمكن أن تفعل شيئا مع:

for a in `find / -type l`; do echo "$a -> `readlink $a`"; done | grep destfolder

وألاحظ أن فري هو find لا يدعم -lname الخيار الذي هو السبب في أنني انتهى مع سبق.

find . -type l -printf '%p -> %l\n'

وبصرف النظر عن النظر في جميع المجلدات الأخرى إذا كان هناك روابط لافتا إلى المجلد الأصلي ، أنا لا أعتقد أنه من الممكن.إذا كان, وأود أن تكون مهتمة.

find / -lname 'fullyqualifiedpathoffile'
find /foldername -type l -exec ls -lad {} \;

بالنسبة hardlinks ، يمكنك الحصول على inode من الدليل الخاص بك مع واحدة من "هل" خيارات (-i, أعتقد).

ثم find مع -inum سيتم تحديد موقع كل مشترك hardlinks.

بالنسبة softlinks ، قد تضطر إلى القيام ls -l على جميع الملفات تبحث عن النص بعد "->" وتطبيع للتأكد من انها مطلقة المسار.

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