כיצד להתמודד עם חללים בשמות קבצים בלינוקס

Dec 14, 2024
לינוקס

כמו רוב מערכות ההפעלה, Linux תומכת בשמות קבצים עם חללים בהם. אך השימוש בשמות הקובץ הללו בשורת הפקודה אינו תמיד פשוט. להלן מספר דרכים בהן תוכלו להתמודד עם שמות קבצים המכילים רווחים.

שם הקובץ הצנוע
מדוע חללים בשמות קבצי לינוקס הם כאב
איך לצטט ולברוח מרחבים
כיצד לתקן את בעיית החלל במקור שלה
הרחבת הכרטיסייה הופכת את ההתמודדות עם חללים לקלה
כיצד להשתמש בשמות קבצים עם רווחים בסקריפטים של BASH
מרוחק, אבל לא רעוע

שם הקובץ הצנוע

כל מה שמאוחסן במחשב שלך דיסק קשיח צריך להיות שם. ללא שם, לא היו קיימים קבצים. כל היישומים והדמונים המושקים כאשר המחשב שלך מתגלה, וכל התוכנות בהן אתה משתמש, יש לאחסן ולשמר במערכת קבצים. זיהוי זה הוא שם הקובץ. '

אותו דבר חל על הקבצים שאתה יוצר או מתקין. כל המסמכים, התמונות והמוזיקה שלך זקוקים לשמות קבצים. ללא שמות קבצים, אף אחד מהנכסים הדיגיטליים שלך לא יכול היה להתקיים. מכיוון ששמות הקבצים חשובים כל כך, לינוקס משתדלת קשה להטיל כמה מעט כללים לגבי ההרכב שלהם ככל שהיא יכולה.

ב- Linux, שם קובץ עשוי להכיל כל דמות מלבד הסלאש קדימה " / / "והדמות האפסית, 0x00 ו הדמות null משמשת לסימון קצה המיתר, כך שהיא לא יכולה להיות נוכחת במחרוזת עצמה, או ש- Linux תקטע את שם הקובץ במיקום הדמות null. ה " / / "קדימה סלאש משמש כמפריד בנתיבי ספריות.

שמות קבצים רגישים למקרה, ויכול להיות עד 255 בתים , כולל הדמות null. נתיבי ספרייה יכולים להיות באורך של עד 4096 בתים, כולל הדמות null. שימו לב שזה אורכם ב בתים , שאולי לא ישתווה ישירות ל דמויות ו תווי Unicode של 16 סיביות, למשל, קח שני בתים כל אחד.

חובבי מחשוב רטרו ואלה עם זיכרונות ארוכים יידעו שבימים הראשונים של מחשבים אישיים, מערכת הפעלת הדיסק של מיקרוסופט , DOS, היה חסר רגישות למקרה ובעל מגבלת שם קובץ של שמונה תווים, בתוספת שלוש תווים סיומת ו

היית צריך להיות מאוד מהורהר ולפעמים יצירתי כשאתה קורא לקבצים. לשם השוואה, החופש שיש לנו היום פירושו שאנחנו יכולים לקרוא לקבצים כל מה שאנחנו רוצים, עם מעט מחשבה לכל דבר אחר מלבד התיאור שאנו יוצרים עבור אותו קובץ.

אבל עם שמות קבצים, מה שמסע אותנו לרוב זה לא הדמויות שאנו מקלידים, זה החללים שביניהם.

מדוע חללים בשמות קבצי לינוקס הם כאב

פגזים כמו Bash יפרשו מחרוזת מילים מופרדת בחלל כטיעוני פיקוד בודדים, ולא כטיעון אחד. הנה דוגמה, שימוש לגעת ל צור קובץ חדש נקרא "הקובץ החדש שלי. txt."

כמו שאנו יכולים לראות, ls מראה לנו שיש שלושה קבצים שנוצרו, אחד שנקרא "My", אחר שנקרא "חדש", ואחד נוסף שנקרא "file.txt."

ציין זאת לגעת לא התלונן ולא זרק שגיאה. זה מבצע את מה שהוא חושב שאנחנו מבקשים ממנו לעשות. אז זה מחזיר אותנו בשקט לשורת הפקודה. אם איננו מוטיבציה לבדוק, לא נדע שהדברים לא נעלמו לפי התוכנית.

כדי ליצור את הקובץ שרצינו, עלינו לצטט או להימלט.

איך לצטט ולברוח מרחבים

אם אנו מצטטים את כל שם הקובץ, לגעת יודע שהוא צריך להתייחס לטקסט המצוטט כאל טיעון יחיד.

הפעם נקבל את הקובץ היחיד שאנו מצפים לו.

אנו יכולים להשיג את אותה התוצאה אם אנו משתמשים בתו Backslash " \ "כדי לברוח מהחללים. על ידי "בריחה" לחללים שאינם מתייחסים אליהם כאל דמויות מיוחדות - כלומר, מפרידי ויכוחים - הם נחשבים למרחבים ישנים פשוטים.

זה עובד, אבל בריחה מרחבים הופכת את הקלדת שמות קבצים לאט יותר ומועדים לשגיאות. הדברים יכולים להיות ממש מכוערים אם יש לך שמות ספריות עם חללים גם בהם.

פקודה זו מעתיקה קובץ טקסט יחיד מספרייה בשם "Dir One" לספרייה בשם "Dir Two", ושומר את העותק כקובץ BAK. וזו דוגמא די פשוטה.

כיצד לתקן את בעיית החלל במקור שלה

אם הם קבצים משלך, אתה יכול לקבל את החלטת המדיניות לעולם לא להשתמש במרחבים וליצור (או שינוי שם בתפזורת ) שמות קבצים כאלה.

יש להודות שזה פיתרון חזק אבל הוא עדיין מכוער. ישנן אפשרויות טובות יותר, כמו שימוש במקפים " - "או להדגיש" _ "כדי להפריד את דבריך.

שני אלה יעברו את הבעיה, והם קריאים. אם אינך רוצה להוסיף תווים נוספים לשמות הקובץ שלך, אתה יכול להשתמש גמל כדי להפוך את שמות הקובץ שלך לקריאים, כך:

הרחבת הכרטיסייה הופכת את ההתמודדות עם חללים לקלה

כמובן שאימוץ ועידת שמות והדבקות בה יעזור רק כשאתה מתמודד עם קבצים משלך. סביר להניח כי קבצים שמגיעים מכל מקום אחר לא יעקבו אחר אמנת השמות המאומצת שלך.

אתה יכול להשתמש בהרחבת הכרטיסייה כדי לעזור לך במדויק "למלא" שמות קבצים עבורנו. בואו נגיד שאנחנו רוצים לִמְחוֹק קובץ ה- BAK שיצרנו ב"- DIR TWO ", באמצעות RM ו

אנו מתחילים בהקלדת "RM DIR" מכיוון שאנחנו משתמשים ב RM פקודה ואנחנו יודעים ששם הספרייה מתחיל ב"הימיר ".

לחיצה על מקש "TAB" גורמת לסריקה של BASH עבור התאמות בספריה הנוכחית.

ישנן שתי ספריות שמתחילות ב"- DIR ", ובשני המקרים הדמות הבאה היא מרחב. אז באש מוסיף את הדמות האחורית " \ "ומרחב. באש מחכה שנוכל לספק את הדמות הבאה. הוא זקוק לדמות הבאה כדי להבדיל בין שני המשחקים האפשריים בספריה זו.

אנו נקליד "T", עבור "שניים", ואז לחץ שוב על "TAB".

באש משלים עבורנו את שם הספרייה ומחכה שנקלין את תחילת שם הקובץ.

יש לנו רק קובץ אחד בספריה זו, ולכן די להקליד את האות הראשונה של שם הקובץ, "M", מספיק כדי ליידע את Bash באיזה קובץ אנו רוצים להשתמש. הקלדת "M" ולחיצה על "Tab" משלימה עבורנו את שם הקובץ ו- "Enter" מבצעת את כל הפקודה.

הרחבת Tab מקלה על להבטיח שתקבל שמות קבצים נכון, והיא גם מזרזת את הניווט והקלדה בשורת הפקודה באופן כללי.

קָשׁוּר: השתמש בהשלמת הכרטיסייה כדי להקליד פקודות מהר יותר בכל מערכת הפעלה

כיצד להשתמש בשמות קבצים עם רווחים בסקריפטים של BASH

זה לא מפתיע את זה סקריפטים יש בדיוק את אותם בעיות עם רווחים בשמות קבצים כמו שורת הפקודה. אם אתה מעביר שם קובץ כמשתנה וודא שאתה מצטט את השם המשתנה.

סקריפט קטן זה בודק את הספרייה הנוכחית עבור קבצים התואמים את דפוס הקובץ "*.txt", ומאחסן אותם במשתנה שנקרא File_List ו א ל לוּלָאָה משמש לביצוע פעולה פשוטה על כל אחת מהן.

העתק טקסט זה לעורך ושמור אותו בקובץ בשם "files.sh." ואז השתמש ה צ'מוד פקודה כדי להפוך אותו להפעלה.

יש לנו כמה קבצים בספריה זו. לאחד יש שם קובץ פשוט, והשני האחרים משתמשים במדגיש " _ "או מקפים" - "במקום חללים. זה מה שאנחנו רואים כשאנחנו מפעילים את התסריט.

נראה שזה עובד יפה. אבל בואו נשנה את הקבצים בספריה של קבצים המכילים רווחים בשמותיהם.

כל מילה בכל שם קובץ מטופלת כאילו הייתה שם קובץ בפני עצמה, ולכן התסריט נכשל. אבל כל מה שאנחנו צריכים לעשות כדי להפוך את החללים של ידית הסקריפט בשמות קבצים זה לצטט את קובץ $ משתנה בתוך ל לוּלָאָה.

שים לב ששלט הדולר " $ "נמצא בתוך הציטוטים. ביצענו את השינוי ושמרנו אותו בקובץ הסקריפט "files.sh". הפעם, שמות הקובץ מטופלים כראוי.

קָשׁוּר: כיצד לעבד שורת קובץ אחר שורה בסקריפט של לינוקס באש

מרוחק, אבל לא רעוע

הימנעות מרחבים בשמות הקבצים שלך רק תביא אותך עד כה. זה בלתי נמנע שתיתקל בקבצים ממקורות אחרים עם שמות המכילים רווחים. למרבה המזל, אם אתה צריך להתמודד עם קבצים אלה בשורת הפקודה או בסקריפטים, ישנן דרכים קלות לעשות זאת.


לינוקס - המאמרים הפופולריים ביותר

כיצד תהליכים להרוג זומבי על לינוקס

לינוקס Nov 25, 2024

Fatmawati אחמד Zaenuri / Shutterstock תוכנית שנכתבו גרוע או ביצוע גרוע יכול לעזוב תהליכי זומבי א..


הפצות לינוקס הטוב ביותר ללא מערכת

לינוקס Feb 24, 2025

BMJ / Shutterstock.com. כאשר הפצות לינוקס הדומיננטי אימצו סיסטור , מתנגדים הפצות והתחילו פר�..


מהן Bash מילונים על לינוקס, וכיצד אתה משתמש בהם?

לינוקס Jun 16, 2025

fatmawati Achmad zaenuri / Shutterstock.com מילונים Bash לתת לכם מפות חשיש ו מערכים אסוציאטיביים ב סקריפטים ..


כיצד לעדכן אובונטו לינוקס

לינוקס Aug 27, 2025

tomeqs / shutterstock.com. צריך את האחרונה ואת הגדול ביותר באובונטו תוכנה? אתה לא צריך להיות לינוק�..


מהם החסרונות של מעבר לינוקס?

לינוקס Oct 27, 2025

לארי ewing ו gimp האוונגליסטים לינוקס (כמותי) ממהר להצביע על יתרונות רבים של מיתוג מעל מ- Windo..


כיצד להוריד ולהתקין Steam על לינוקס

לינוקס Oct 9, 2025

סטודיו פוסט-מודרני / shutterstock.com אז, אתה רוצה לנסות משחקים על לינוקס ? במאמר זה, נתאר נ..


כיצד להתקין לינוקס על M1 Mac עם Apple סיליקון

לינוקס Nov 11, 2024

התמיכה מובנית לינוקס עבור תפוח של הארכיטקטורה חדשה מבוסס ARM היא עדיין לא מוכנה, אבל אתה יכול להריץ לינוק..


כיצד להרוג תהליך לינוקס לפי מספר יציאה

לינוקס Oct 4, 2025

כדי להרוג תהליך לינוקס אתה זקוק למזהה שלו או לשמו. אם כל מה שאתה יודע זה היציאה שהיא משתמשת, האם אתה עדיין י�..


קטגוריות