הפעל מצב רגיש לאותיות רישיות עבור תיקיות ב-Windows 10
כפי שאתה אולי כבר יודע, מערכת הקבצים של Windows, NTFS, מתייחסת לשמות קבצים ותיקיות כלא רגישים לאותיות גדולות. לדוגמה, עבור מערכת ההפעלה והאפליקציות, MyFile.txt ו-myfile.txt הם אותו קובץ. עם זאת, דברים שונים בלינוקס. עבור מערכת הפעלה זו, אלו שני קבצים שונים. הבדל זה בהתנהגות עלול ליצור בעיות עבור משתמשי WSL. כדי לפתור אותם, Windows 10 כולל את היכולת לאפשר מצב רגיש רישיות עבור תיקיות.
אם השתמשת ב- מערכת המשנה של Windows עבור לינוקס, אתה בוודאי מודע לכך שהוא מאפשר לך להתייחס למערכות הקבצים שלך ב-Windows (מוכוונות תחת /mnt/c, /mnt/d וכו') כרגישות לאותיות גדולות. המשמעות היא, בין היתר, שניתן ליצור קבצים ששמם שונה רק לפי רישיות (למשל foo.txt ו-FOO.TXT).
עם זאת, השימוש בקבצים אלה ב-Windows לא היה ממש אפשרי. מכיוון שיישומי Windows מתייחסים למערכת הקבצים כבלתי תלויה לאותיות גדולות, הם לא יכולים להבחין בין קבצים ששמם שונה רק במקרה. בעוד סייר הקבצים יציג את שני הקבצים, רק אחד ייפתח ללא קשר לאיזה מהם לחצת.
החל מ-Windows Insider build 17093, יש דרך חדשה לטפל בקבצים רגישים לאותיות רישיות ב-Windows: רגישות לפי ספרייה. יכולת זו נוספה כדי להעניק למשתמש יכולת פעולה הדדית טובה יותר בעת שימוש בקבצים רגישים לאותיות גדולות. כמו כן, אתה יכול להשתמש בו עם יישומי Windows רגילים. החל ב-Windows 10 Build 17110, התנהגות זו היא ברירת המחדל.
פרטים נוספים
רגישות רישיות ב-Windows
למשפחת מערכות ההפעלה Windows NT (כולל Windows 10) הייתה תמיד היכולת לבצע פעולות מערכת קבצים תלויות רישיות. יישומים יכולים לעבור את FILE_FLAG_POSIX_SEMANTICS
דגל ל CreateFile
API כדי לציין שהם רוצים שהנתיב יטופל כרגיש לאותיות רישיות. עם זאת, מטעמי תאימות, קיים מפתח רישום גלובלי שעוקף התנהגות זו; כאשר מפתח זה מוגדר, כל פעולות הקבצים אינן תלויות רישיות, גם כאשר FILE_FLAG_POSIX_SEMANTICS
דגל מצוין. מאז Windows XP, זו הייתה ברירת המחדל.
מערכת המשנה של Windows עבור לינוקס משתמשת במנגנון אחר, שבעצמו עוקף את מפתח הרישום הזה, ומאפשר לנו לבצע פעולות מערכת קבצים תלויות רישיות. זה מה שמאפשר ליישומי לינוקס הפועלים ב-WSL להשתמש בשמות קבצים הנבדלים רק לפי מקרה, בדיוק כמו שהם יכולים בלינוקס אמיתי, אפילו עם ערכת מפתחות רישום גלובלית זו.
למרבה הצער, זה משאיר אותך עם קבצים שלא ניתן לגשת אליהם על ידי יישומי Windows. למרות שאתה יכול לשנות את מפתח הרישום הגלובלי, זה עדיין יעבוד רק עבור היישומים המשתמשים FILE_FLAG_POSIX_SEMANTICS
, וזה ישנה את ההתנהגות של כל הקבצים בכל הכוננים, שאולי לא נועדה ועלול לשבור יישומים מסוימים.
רגישות לרישיות לפי ספרייה
כדי לפתור בעיה זו, מיקרוסופט הוסיפה דגל חדש תלוי-רישיות שניתן להחיל על ספריות. עבור ספריות שמוגדרות בהן הדגל, כל הפעולות על קבצים בספריה זו תלויות רישיות, ללא קשר לשאלה אם FILE_FLAG_POSIX_SEMANTICS
צוין. המשמעות היא שאם יש לך שני קבצים הנבדלים זה מזה רק לפי רישיות בספרייה המסומנת כתלוית רישיות, כל האפליקציות יוכלו לגשת אליהם.
הפעל מצב רגיש לאותיות רישיות עבור תיקיות
כדי להפעיל או להשבית תכונה זו, עליך להשתמש באפליקציית fsutil.exe המובנית.
כדי לאפשר מצב רגיש רישיות עבור תיקיות, תעשה את הדברים הבאים.
- לִפְתוֹחַ שורת פקודה מוגבהת.
- הקלד את הפקודה הבאה:
fsutil.exe קובץ setCaseSensitiveInfo "הנתיב המלא לתיקיה שלך" הפעל
החלף את חלק הנתיב בנתיב הנכון התואם למחשב שלך.
לדוגמה,fsutil.exe קובץ setCaseSensitiveInfo "C:\data\Winaero\Linux" אפשר
- אתה גמור.
כעת, אתה יכול ליצור שני קבצים עם אותו שם ועם הבדל רישיות בלבד. Windows 10 יעבד אותם בצורה נכונה בתיקייה הספציפית הזו.
כדי לראות את סטטוס התכונה של תיקיה, הפעל את הפקודה
קובץ fsutil.exe queryCaseSensitiveInfo "הנתיב המלא לתיקיה שלך"
לדוגמה,
קובץ fsutil.exe queryCaseSensitiveInfo "C:\data\Winaero\Linux"
אתה תראה משהו כזה:
סוף כל סוף, כדי לבטל מצב תלוי רישיות עבור תיקיות, הפעל את הפקודה הבאה בשורת הפקודה שנפתחה כמנהל:
fsutil.exe קובץ setCaseSensitiveInfo "C:\data\Winaero\Linux" השבת
השתמש בנתיב התיקייה הנכון וסיימת.
הערה: השבתת התכונה CaseSensitiveInfo עבור תיקיות שאינן ריקות אינה נתמכת. עליך להסיר את כל הקבצים מהתיקיה לפני השבתתה.
זהו זה.