לדפדף קבצים בספרייה

Bash Loop Through Files Directory



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

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







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



$לַחֲבוֹט--גִרְסָה



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





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

$mkdirא ב ג



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

$CDא ב ג

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

$לגעתfile1.txt

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

$זרקלינוקס, אובונטו, Postgresql>file7.txt

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

$לגעתקוֹבֶץ-{1..8}.טקסט

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

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

$ל קוֹבֶץ ב *;לַעֲשׂוֹת זרק קובץ $;בוצע

* משמש לכל הקבצים הקיימים בספרייה זו. זה מאפשר ללולאת 'for' לתפוס את כל הקבצים. אך כדי לדייק את הפלט, תוכל להוסיף כמה מונחים עם סימן הכוכבית. לדוגמה, 'file-*' משמש לכל הקבצים המתחילים מהקובץ. ו- *.txt כדי לאחזר את הקבצים שיש להם סיומות .txt. נשתמש בדוגמאות אלה בהמשך המאמר.

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

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

$ל קוֹבֶץ ב *;לַעֲשׂוֹת זרק -2 קובץ $ n לינוקס אובונטו> קובץ $;בוצע

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

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

$ל קוֹבֶץ ב *;לַעֲשׂוֹת חתול קובץ $;בוצע

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

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

$ל קוֹבֶץ ב *;לַעֲשׂוֹת זרקקובץ $תכנות nbash> קובץ $;חתול קובץ $;בוצע

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

כל קובץ מכיל את אותו ערך. זה בגלל הלולאה 'למען'.

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

$ל קוֹבֶץ ב *;לַעֲשׂוֹת cp קובץ $ קובץ $.מֵאָחוֹר;בוצע;

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

$ls- ה

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

אם אנחנו רוצים רק את קבצי jpeg. נשתמש בזה בפקודה

$ל קוֹבֶץ ב *.jpeg;לַעֲשׂוֹת זרק קובץ $;בוצע

זה יביא את שמות התמונות בלבד.

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

$למצוא. - שם*ש

נשתמש במילת המפתח למצוא בלולאה עבור לולאה.

$ל קוֹבֶץ ב *;לַעֲשׂוֹתלמצוא. קוֹבֶץ.*;בוצע

זה יביא את כל הקבצים לספרייה הנוכחית. לאלה יש הרחבות של .bak, .jpeg, .txt. וכו '

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

$ל קוֹבֶץ ב *;לַעֲשׂוֹת קוֹבֶץ קובץ $;בוצע

סיכום

כיוון הקבצים בכל ספרייה כבר לא קשה, כידוע, שימוש בלולאות ב- Bash וביצועים במערכות ההפעלה Linux. הדרכה זו היא מדריך מלא ליצירה, גישה לביצוע פעולות בספרייה באמצעות לולאת 'עבור'.