קישור סימבולי
במחשבים, קישור סימבולי או קישור סמלי (אנגלית: symbolic link; נקרא גם בקיצור symlink או soft link) הוא סוג מיוחד של קובץ אשר מכיל הפניה לקובץ אחר או לתיקיה, בעזרת נתיב יחסי או מוחלט.[1]
הרעיון של קישור סימבולי הוצג לראשונה כבר בשנת 1978 במערכת ההפעלה של חברת DEC. כיום קישורים סימבולים נתמכים על ידי רוב מערכות ההפעלה, ביניהן מערכות ההפעלה התומכות בתקן POSIX, רוב מערכות ההפעלה דמויות יוניקס, כגון FreeBSD, לינוקס, ו-Mac OS X, ומערכות Microsoft Windows, החל מ-Windows Vista. מערכות Windows ישנות יותר תומכות ברעיון בצורת קיצור דרך.
קישורים סימבוליים מאפשרים שקיפות ברוב הפעולות, ותוכניות אשר קוראות או כותבות לקובץ המכיל הפניה יתנהגו כאילו פעלו על קובץ היעד. לעומת זאת, תוכניות שונות מזהות ומטפלות בקישורים אלו בצורה שונה, למשל שירותי גיבוי. הקישור הסימבולי מהווה קובץ נפרד ועצמאי, ולכן ניתן למחוק אותו מבלי לפגוע בקובץ היעד. כאשר קובץ היעד הועבר ממקומו, נמחק או ששונה שמו, ימשיך הקישור הסימבולי להפנות לכתובת הישנה ואיננו יתעדכן. קישור שכזה נקרא לעיתים "קישור שבור".
POSIX
[עריכת קוד מקור | עריכה]במערכות הפעלה תואמות POSIX, קישור סימבולי נוצר בעזרת קריאת המערכת symlink()
.[2] קישורים סימבולים התווספו לראשונה במערכות אלו ב-4.2BSD. פקודת המעטפת ln
בתוספת הדגל -s
תיצור קישור סימבולי, בצורה הבאה:
ln -s target_path link_path
פקודת הצגת רשימת הקבצים ls
מציגה לינקים סימבולים עם חץ לאחר שמם, המצביע על מיקום קובץ היעד, כאשר משתמשים בדגל -l
. לדוגמה:
$ ln -s /tmp/one/two three
$ ls -l /tmp/three
lrwxrwxrwx 1 user group 12 Jul 22 10:02 /tmp/three -> /tmp/one/two
Microsoft Windows
[עריכת קוד מקור | עריכה]Windows Vista, Windows 7 ו-Windows 8 מאפשרים יצירת קישורים סימבוליים לקבצים ותיקיות בעזרת הפקודה mklink
. קישורים אלו נועדו לסייע במיגרציה של תוכנות הפועלות בסביבת POSIX, ולכן מיקרוסופט תכננה אותם להיות "בדיוק כמו קישורים של יוניקס".[3]
קיצורי דרך
[עריכת קוד מקור | עריכה]קיצורי דרך נתמכים על ידי דפדפני קבצים גרפיים במערכות הפעלה שונות, אך שונים במספר תכונות חשובות. קישורים סימבוליים עובדים ברמת מערכת הקבצים, ולכן תוכנית שתיגש לקובץ תראה אותו בתור קובץ היעד, ללא קשר למודעותה לסוג הקובץ. נוסף על כך, קיצורי דרך ב-Windows מקשרים לנתיב מוחלט, בעוד קישור סימבולי יכול גם לקשר לנתיב יחסי למיקום הקישור.