יצירת קיצור דרך לקובץ ע"י שורת הפקודה
-
אשמח למידע כיצד יוצרים קיצור דרך לקובץ ע"י שורת הפקודה.
ניסיתי באמצעותmklink /h c:/111.lnk c:/2222.txt
והתוצאה היתה קובץ עם סיומת lnk בגודל של הקובץ המקורי, ולא נפתח.
מה הדרך לעשות זאת?מי מבין בזה? @yossiz
-
@שקוע-בלימוד תוריד את ה h
-
@שקוע-בלימוד יש כמה סוגי קיצורי דרך בווינדוס.
הסוג הנפוץ (עם סיומת lnk) שלזה כנראה אתה מתכוון, לא נוצר באמצעות פקודתmklink
אין פקודה מובנית ליצירתם, יש כאן כמה תשובות איך ליצור אותם בכל זאת בשורת הפקודה:
https://stackoverflow.com/questions/30028709/how-do-i-create-a-shortcut-via-command-line-in-windows
https://superuser.com/questions/392061/how-to-make-a-shortcut-from-cmd -
@yossiz אתה בטוח ? כי לי זה יוצר יופי כשאני כותב ככה
mklink 1.lnk 2.exe
@שקוע-בלימוד ניסה ליצור הארד לינק במקום לינק רגיל
עריכה: עכשיו אני שם לב שיש הבדל, קיצור דרך רגיל מייחס את נתיב הקובץ לנתיב של הקובץ המקורי, לעומת זאת לינק סימבולי - כמו זה שעושים עם mklink מייחס את הנתיב לנתיב של הקיצור דרך עצמו
בכל מקרה, ברוב הפעמים זה לא מאוד משנה -
ברשותכם ארחיב קצת על הכלי:
יש בWindows שני כלים ליצירת קיצורי דרך, א. junction.exe, ב. MKLink. ואני אנסה להסביר את ההבדל בין הכלים:
השוואה:
junction נבנתה בשנות ה2000 על ידי מארק רוסינוביץ (Mark Russinovich's) ונוצרה לצורך ספציפי: יצירת ומחיקת קיצורי דרך. לאורך השנים לא הוצגו חידושים בכלי, והגרסא האחרונה פורסמה ב-4 ביולי 2016.
mklink לעומת זאת היא פקודה שזמינה החל מWindows Vista והילך וניתן ליצור עם זה מגוון סוגי קישורים (Hard links, Junctions, Symbolic links). רשמית אין בmklink דרך רשמית למחוק את הקיצורים אחרי היצירה, אבל ניתן לעשות זאת עם הפקודות del וrd.קצת היסטוריה:
לפני Vista, לא היה אפשרות בWindows ליצור קיצורי דרך. ומי שרצה, היה צריך לכתוב לכך תוכנה בעצמו, או להשתמש בrktools.exe שמייקרוסופט יצרה.
בשנות ה2000, שוחררה הגרסא הראשונה של junction, מצורף הציטוט מהאתר הרשמיWindows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. [...] Unfortunately, Windows comes with no tools for creating junctions—you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction.
בשנת 2005 שוחררה בטא של mklink שלא יכלה ליצור קיצורי דרך. היכולת נוספה עם השימוש בCommunity Technology Preview (CTP) שפורסמה ב19 בדצמבר 2005.
להלן התיעוד הראשון מהרשת לשימוש בכליC:\test>ver Microsoft Windows [Version 6.0.5365] C:\test>mklink Creates a symbolic link. MKLINK [[/D] | [/H] | [/J]] Link Target [...]
מידע נוסף:
קובץ או תיקיה יכולים להכיל נקודת שחזור. הפורמט של הנקודה קריא על ידי מערכת הקבצים והיא יודעת לעבד אותו.
במערכות הקבצים NTFS ישנם שלש סוגים של קישורים לקבצים שנתמכים:
א. Hard links - קישור שמצביעה על מיקום אחר, לדוגמא: C:\dira\ethel.txt linked מפנה לC:\dirb\dirc\lucy.txt.
ב.Junctions - נקודת שחזור
ג. Symbolic links - שזה בעצם קיצור דרך (תומך בנתיבים מקומים ובנתיבי רשת), בWindows 7 נוספה מדיניות אבטחה שלא מאפשרת לחסרי הרשאות ליצור קיצורי דרך למיקום שדורש הרשאות.ואחרי ההקדמה: בעוד junction.exe תומך רק בנקודות שחזור ובהארד לינק, mklink לעומת זאת תומכת גם ביצירת קיצורי דרך, כך שהיא התוכנה השימושית.
הוראות לשימוש בכלי: (נתמך בWindows 11, 10, 8, 7, וVista)
יש להפעיל את הCMD כמנהל ולהריץ mklink.
כדי ליצור קיצור דרך לספריה משתמשים בדגל /D, כדי ליצור קיצור דרך לקובץ כלשהוא משתמשים בדגל /H, וכדי ליצור הארד לינק יש להשתמש בדגל /J.
לדוגמא:mklink /J "C:\Link To Folder" "C:\Users\Name\Original Folder"
אם אתה רוצה ליצור קיצור דרך בצורה גרפית, תוכל להוריד את הכלי Link Shell, לאחר ההתקנה, תנווט לקובץ שאתה רוצה ליצור לו קיצור דרך, קליק ימני ו״Pick Link Source״ (בווינדוס 11 צריך ללחוץ קודם על ״הצג אפשרויות נוספות״)
אותו רעיון ביצירת קיצור דרך לתיקיה או הארד לינק:
בהצלחה!
-
הרחבה בנושא קיצורי דרך וקישורים לקבצים
בווינדוס יש שלוש דרכים ליצור "קיצור דרך" לקובץ
- קישור קשיח (hardlink)
- קישור סימבולי/רך (soft/symbolic link)
- קיצור דרך "רגיל" (shell links)
מבנה מערכת הקבצים
מערכת הקבצים הינה מבנה נתונים בצורת עץ (או גרף) שיש בו צמתים מסוג "ענפים" (שמובילים לעוד צמתים) וצמתים מסוג "עלים" (תחנה סופית). ה"ענפים" הם תקייות וה"עלים" הם קבצים. כל צומת מכיל דאטה, צמתי תקייות מכילים מטה דאטה על התיקייה עצמה (שם, הרשאות, תאריכי יצירה שינוי וכו' מאפיינים ועוד) ורשימה של קבצים או תקייות אחרות שהם הילדים שלה, קבצים מכילים את המטה דאטה שלהם (שם, הרשאות, תאריכי יצירה שינוי וכו' מאפיינים ועוד) וכתובת שמצביע על המיקום בדיסק של התוכן של הקובץ.
קישור קשיח (hardlink)
קישור קשיח הוא האפשרות לשני צמתים מסוג עלה בעץ להצביע על אותו דאטה עבור התוכן של הקובץ.
השלכות:
- כל קובץ יש לו סט מטה דאטה שלם משל עצמו (שם, הרשאות, תאריכי יצירה שינוי וכו')
עריכה: זה לא נכון לגמרי, המאפיינים של הקובץ עצמו משותפים, כמו דגל readonly. עוד לא ברור לי איזה מאפיינים משותפים ואיזה לא - אין שום קובץ "מיוחס" שנחשב כקובץ ה"עיקרי". שניהם "מיוחסים" בשווה.
- מחיקה של קובץ אחד לא מוחק את הדאטה, כי הקובץ השני עדיין מצביע עליו
- אי אפשר לעשות קישור קשיח שחוצה מערכות קבצים. למשל אי אפשר לעשות קישור קשיח לקובץ במחיצה אחרת או בכונן אחר.
- אי אפשר לעשות קישור קשיח לתקייה, רק לקובץ (נימוק)
- צריך תמיכה של מערכת הקבצים. מערכות קבצים של FAT מכל הסוגים לא תומכים בקישורים קשיחים.
קישור סימבולי/רך (soft/symbolic link)
קישור "רך" הוא מושג שהומצא במערכות יוניקס ונתמך בווינדוס לשם תאימות ליוניקס
קישור רך הוא סוג צומת עלה (קובץ) מיוחד שמשתמש כציון דרך ולא מכיל דאטה. יש לו סט מטה דאטה כמו קובץ רגיל, אבל במקום הכתובת של הדאטה בדיסק הקשיח שקובץ רגיל מכיל, הקובץ הזה מכיל פיסת דאטה קטן שזה נתיב למיקום אחר. הנתיב הזה שמור כמחרוזת טקסט פשוט.
כאשר ניגשים לקובץ כזה, מערכת ההפעלה לוקח את התוכן מהנתיב ההוא.השלכות:
- יש קובץ "מקורי" וקובץ "קישור". המקורי מכיל את הדאטה והקישור מכיל רק קישור. (לשניהם יש סט מטה דאטה שלם)
- מחיקה של הקובץ המקורי מוחק את הדאטה, הקישור עדיין יהיה קיים אבל גישה לקובץ הקישור ייכשל עם שגיאה
- אפשר לעשות קישור רך שחוצה מערכות קבצים. למשל אפשר לעשות קישור קשיח לקובץ במחיצה אחרת או בכונן אחר.
- אפשר לעשות קישור רך לתקייה. גישה לקישור יהיה כמו גישה ליעד של הקישור.
- צריך תמיכה של מערכת הקבצים. מערכות קבצים של FAT מכל הסוגים לא תומכים בקישורים "רכים".
- לפעמים, תוכנות או תכונות של מערכת ההפעלה יתייחסו לקישור עצמו במקום ליעד של הקישור. הכל תלוי בתוכנה/תכונה.
קיצור דרך "רגיל" (shell links)
קבצי קיצור דרך הנפוצים הם קבצים רגילים לכל דבר בעיני מערכת הקבצים.
הם צמתי עלה רגילים כמו כל קובץ והם מכילים תוכן רגיל בדיסק הקשיח.ההתייחסות המיוחדת להם הוא אך ורק ברמת המעטפת (shell) הגרפי של ווינדוס.
מדובר בקבצים בינאריים עם סיומת LNK. בתוכן של הקובץ יש כמה שדות מידע, ביניהם:
- נתיב של היעד (הנתיב פה לא שמור כמחרוזת פשוטה אלא בפורמט מיוחד שמובנת למעטפת של ווינדוס, הנתיב לא בהכרח לקובץ, אלא אף למיקומים נוספים שמוכרים למעטפת של ווינדוס)
- אייקון
- אפשרויות שונות איך להריץ את הקובץ (תיקייה נוחכית, שורת פקודה, מצב החלון)
- קיצור מקשים להריץ את הקובץ
- ועוד
השלכות:
- כמו בקישור "רך", יש קובץ "מקורי" וקובץ "קישור". המקורי מכיל את הדאטה והקישור מכיל רק קישור. (לשניהם יש סט מטה דאטה שלם)
- שוב כמו בקישור "רך", מחיקה של הקובץ המקורי מוחק את הדאטה, הקישור עדיין יהיה קיים אבל גישה לקובץ הקישור (בצורה שהיתה אמורה לגשת ליעד, עיין להלן) ייכשל עם שגיאה
- אפשר לעשות קיצור דרך שחוצה מערכות קבצים. למשל אפשר לעשות קישור קשיח לקובץ במחיצה אחרת או בכונן אחר.
- אפשר לעשות קיצורי דרך לדברים שלא קיימים בכלל בשום קובץ אבל יש להם נתיב ברמת המעטפת, למשל מיקום בלוח הבקרה
- אפשר לעשות קיצור דרך לתקייה. גישה לקישור יהיה כמו גישה ליעד של הקישור.
- לא צריך תמיכה של מערכת הקבצים. גם מערכות קבצים של FAT מכל הסוגים מאפשרים יצירת קיצורי דרך.
- לפעמים, תוכנות או תכונות של מערכת ההפעלה יתייחסו לקישור עצמו במקום ליעד של הקישור. זה תלוי בתוכנה/תכונה כדלהלן:
גישה לקובץ דרך שירותי הליבה של מערכת ההפעלה יובילו לקיצור עצמו ולא ליעד שלו, רק גישה דרך המעטפת (או שירותי API שהוא נותן) יכול להוביל ליעד של הקישור
-
אחרי שכתבתי את הנ"ל ראיתי את פוסט ההרחבה של @Elhanan
הדברים משלימים אחד את השניא. תודה רבה על המידע המחכים!
ב. אני שם לב שפספסתי junction. אני צריך עדיין לעיין בהבדלים העדינים בינו לבין קישורים סימבוליים החדישים יותר
ג. התוסף LSE שהבאת שימושי מאוד למי שאוהב לחתור בקרבי מערכת הקבצים שלו, כבר שנים שאני עושה בזה שימוש (בעיקר לזהות קישורים קשיחים ואיפה כל הנתיבים שמצביעים על הדאטה, מנגנון SXS של ווינדוס עושה שימוש רחב בקישורים קשיחים)