سؤال ما الفرق بين الرابط الرمزي والاختصار؟


ما الفرق بين الرابط الرمزي والاختصار؟


71
2018-03-06 16:21


الأصل


المتعلقة Unix.SE السؤال: هل الارتباط الرمزي / المرن يشبه الاختصار / الاسم المستعار على سطح المكتب؟ - Gaurang Tandon


الأجوبة:


أعتقد أن النقطة المهمة هي أن الاختصارات ليست سوى ملف. لديهم حجم (A صغيرة واحدة ، تشير فقط إلى المكان الذي تشير إليه) وتتطلب تطبيقًا لدعم نوع الملف ليتم استخدامه.

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


53
2018-03-06 17:58



أوامر المشي شجرة (أي شيء مثل المرافق unix find، tar، du، وما إلى ذلك) فعل بحاجة إلى معرفة الروابط الرمزية أو قد يفعلون بعض الأشياء الغبية جدًا. على سبيل المثال ، يمكن أن تؤدي عملية blinding التالية للروابط الرمزية إلى إنشاء دورات في نظام الملفات ، وهذا يعني سيئة. - dmckee
dmckee. نقطة جيدة للغاية ، في حين أن أي تطبيق يحتاج إلى دعم محدد لمتابعتها ، فهم بحاجة إلى دعم محدد ليس اتبعهم! - Phoshi
نعم ، لا تحتاج إلى دعم استعمال لهم ولكنهم بحاجة إلى ذلك يعرف عن معهم. - dmckee
@ Phoshi ما الذي تعنيه بالضبط "وأنها تتطلب تطبيقًا لدعم هذا النوع من الملفات حتى يتم استخدامه.". هل يمكنك أن تشرح بمثال؟ - Geek
Geek: "الاختصار" هو بشكل فعال ملف يحتفظ بملف filepath لملف آخر. عندما تقرأه ، تقرأ ملفًا مهيأًا بشكل خاص يخبرك بمكان النظر بعد ذلك. إذا كان التطبيق الخاص بك لا يستمع ، وببساطة يقرأ الملف حرفيا ، فإنك لا تتبع ذلك. والارتباط الرمزي هو مستوى نظام الملفات ، فهو نظام الملفات نفسه الذي يحمل المسار "الحقيقي" للبيانات وعند محاولة الوصول إليه ، يمكنك استرجاع البيانات المشار إليها. - Phoshi


يمكن أن يعمل "الرابط الرمزي" في الواقع كبديل لدليل أو ملف بطريقة وظيفية ، ويستخدم بشكل شائع في بيئات يونكس / لينكس. على الرغم من وجود دعم على ما يبدو لهذا في Windows ، إلا أنني لم أشاهد أي استخدام فعلي له حتى الآن.

"الاختصار" هو مجرد ملف عادي يحتوي على مرجع إلى الملف أو الدليل الوجهة مع بعض الأشياء الأخرى مثل الأيقونة المراد عرضها. على عكس رابط Symbolic Link ، لا يمكنك "cd ./shortcut-name" في DOS (في Unix / Linux يمكنك "cd ./symlink-name" وسيعمل مثل مجلد فرعي حقيقي).

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


18
2018-03-06 17:02



في يونكس / لينكس ، هناك أيضًا "روابط ثابتة" يتم تطبيقها على الملفات فقط (وليس الأدلة). هذه هي إدخالات أسماء الملفات الطبيعية في نظام الملفات الذي يحدث فقط للإشارة إلى نفس بيانات الملف كإدخال اسم ملف آخر في مكان آخر (لا يجب أن يكون في نفس الدليل). - Randolf Richardson
Randolf: 1) توجد Hardlinks في Windows أيضًا. 2) إحدى ميزات اختصارات shell هي تتبع الأهداف تلقائيًا - إذا تم نقل الهدف ، فستستمر معظم اختصارات الوقت في العمل. (في مجال AD ، من الممكن أيضًا تتبع الملفات عبر أجهزة الكمبيوتر ، على سبيل المثال ، إذا قمت بنقل HD في مكان آخر). 3) إن أحد استخدامات symlinks هو إعادة توجيه ملف أو دليل إلى موقع بديل - يمكن أن يشير إلى الملفات (بخلاف الوصلات) والأدلة (بخلاف الارتباطات الثابتة) ، ونظام الملفات المتقاطع (على عكس الارتباطات الثابتة) ، ويمكن لـ AFAIK ، حتى الإشارة إلى مواقع الشبكة. - grawity
التعليق المتأخر ، وأنا لست متأكداً مما إذا كنت لا أعرف ما أفعله مع الشوكات ، لكن كان علي إنشاء رابط رمزي بدلاً من اختصار لملف vimrc الخاص بي (أشرت إلى مشروع dotfiles الذي أستخدمه في دليل منفصل). - making3


كما ذكر آخرون ، يعد الارتباط الرمزي أحد أنواع الروابط المتاحة على مستوى نظام الملفات ، مما يجعله شفافًا للتطبيقات. لقد وجدت هذه الوثائق من المفيد جدا (esp. قسم "Crop / Unroll / Splice Outer Junctions / Symbolic Links"). والأداة هناك تبدو لطيفة جدا. (بذكر هذا ، و mklink ، نأمل أن المزيد من عمليات البحث سوف تجد هذه المناقشة.)

الاختصار هو ملف ، وليس رابطًا حقيقيًا ، ويتم اتباعه بشكل عام كحلقة ارتباط فقط عند تفسيره بواسطة واجهة مستخدم Windows (واجهة المستخدم). على سبيل المثال ، عند النقر المزدوج فوق اختصار مجلد ، يعيد Windows توجيهك إلى ذلك الموقع الآخر. (يتضمن ذلك مربعات الحوار "فتح ملف" و "حفظ الملف" العامة التي تستدعيها معظم التطبيقات.) على سطح المكتب لدي اختصار لهذا المجلد: C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ G

اسم ملف shorcut هو: C: \ Users \ user5 \ Desktop \ Games.lnk ، على الرغم من أن Windows يمنع امتداد .lnk ويعرض فقط "ألعاب" ، حتى إذا قمت بإلغاء تحديد "إخفاء ملحقات لأنواع الملفات المعروفة". ولكن إذا قمت بفتح موجه الأوامر وقمت بالمدخل ، فسوف تشاهده:

C:\Users\user5\Desktop>dir "g*"
 Volume in drive C has no label.
 Volume Serial Number is 900...
 Directory of C:\Users\user5\Desktop
03/08/2014  05:30 PM             1,710 Games.lnk
               1 File(s)          1,710 bytes
               0 Dir(s)  246,818,222,080 bytes free

يمكنني إنشاء المكافئ باستخدام ارتباط رمزي باستخدام الخيار \ D (للدليل):

C:\Users\user5\Desktop>mklink /D mysymlink  "C:\ProgramData\Microsoft\Windows\S
tart Menu\Programs\G"
symbolic link created for mysymlink <<===>> C:\ProgramData\Microsoft\Windows\Sta
rt Menu\Programs\G

C:\Users\user5\Desktop>cd mysymlink

C:\Users\user5\Desktop\mysymlink>

(يعد ارتباط الدليل (\ J) خيارًا أيضًا ، نظرًا لأن هذا هو رابط مجلد.) Windows explorer ، تمامًا مثل وحدة التحكم هذه ومعظم التطبيقات ، سيسمح لك باستعراض "إلى الأسفل" في هذا الدليل الفرعي ، بدلاً من (أ) إعادة التوجيه "عبر" إلى موقع مختلف أو (ب) فشل.

الاختصارات لا تتصرف مثل الدلائل الفرعية. يمكنني استدعاء سلوك ملف افتراضي في واجهة مستخدم Windows باستخدام هذا الأمر (يفتح هذا المجلد "G" في مستكشف Windows):

C:\Users\user5\Desktop>"Games.lnk"

في حين يتم سرد mysymlink (انظر العد) كدليل فرعي حقيقي ولا يمكن إطلاقها بهذه الطريقة:

C:\Users\user5\Desktop>dir "my*"
 Volume in drive C has no label.
 Volume Serial Number is 900...

 Directory of C:\Users\user5\Desktop

03/29/2014  06:08 PM    <DIR>          mysubdir
03/29/2014  05:40 PM    <SYMLINKD>     mysymlink [C:\ProgramData\Microsoft\Windo
ws\Start Menu\Programs\G]
               0 File(s)              0 bytes
               2 Dir(s)  246,816,153,600 bytes free

C:\Users\user57\Desktop>mysubdir
'mysubdir' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\user57\Desktop>mysymlink
'mysymlink' is not recognized as an internal or external command,
operable program or batch file.

وبالعكس ، لا يمكنك تغيير الدليل إلى اختصار:

C:\Users\user5\Desktop>cd "Games.lnk"
The directory name is invalid.

تتيح لك واجهة مستخدم Windows النقر بزر الماوس الأيمن لتحرير خصائص الاختصار. أو ، ما يلي يوضح بالضبط ما يتم تخزينه بالفعل في الملف .lnk (البيانات الثنائية) ، على الرغم من أن محرر سداسي عشرية سيعرض بشكل أفضل:

C:\Users\user5\Desktop>notepad.exe "Games.lnk"

بينما محاولة تنفيذ "المفكرة" على مجلد فرعي الفعلي ينبثق رسالة الخطأ "تم رفض الوصول" و "المفكرة" فارغة.

وعلى العكس من ذلك ، إذا قمت بعمل رابط رمزي للملفات (وليس رابطًا في المجلد) ، فيمكنني تشغيله باستخدام برنامج Notepad. من المكالمات notepad.exe التالية ، فشل العمل جهازي أولاً و الثالث (يفتح الملف .LNK ، ثنائي gobbledegook).

C:\Users\user5\Desktop>mklink symplain.txt plain.txt
symbolic link created for symplain.txt <<===>> plain.txt

C:\Users\user5\Desktop>notepad.exe "symplain.txt"

C:\Users\user5\Desktop>notepad.exe "plain.txt"

C:\Users\user5\Desktop>notepad.exe "plain.txt.lnk"

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

فيما يتعلق بالاختلافات بين روابط symlinks و الوصلات ، انظر هذا النقاشوها هنا جدا وصف مفيد:

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

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


9
2018-03-29 23:19





"تختلف الروابط الرمزية عن الاختصارات في أنها تقدم   شفاف * المسار إلى كائن البيانات المطلوب ، مع اختصار   (.lnk) ، شيء ما لديه لقراءة وتفسير محتوى   ملف الاختصار ثم افتح الملف الذي يشير إليه (بمعنى أنه ملف   عملية من خطوتين). عندما يستخدم تطبيق ارتباطًا رمزيًا ، فإنه يكسب   الوصول الفوري إلى كائن البيانات المشار إليه بواسطة الارتباط الرمزي (أي   هي عملية خطوة واحدة). "

مصدر: http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html


1
2018-04-27 16:05





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

أستخدم محرك بحث Google لإجراء نسخ احتياطي للملفات ، ولكن في بعض الأحيان أرغب في نسخ الملفات احتياطيًا في مجلد معين (لا يمكنني نقلها إلى ../google drive). خاصة مع تطبيقات ويندوز 10 العالمي ، ملفات التكوين ويتم تخزينها في appdata ، ومعظم الوقت لا أستطيع تغيير هذا الموقع.

أستخدم تطبيق windows stikynot الأصلي ، وكنت أرغب في النسخ الاحتياطي لملاحظاتي ، لذا استخدمت رابطًا هنا. يتعرف محرك Google على الرابط كملف فعلي ويقوم بمزامنة الملفات على ما يرام ، بينما لا يزال الملف الفعلي في مجلد البيانات.

عندما يكون لدي ملفات مثل مجلدات المشروع محليًا لا أرغب في مزامنتها مع السحابة ، أستخدم اختصارات (نسخ ، اختصار past ،> paste).


0
2018-03-26 11:16