יצירת תיקיית גיבוי
חלק מהיחידה יסודות במסלול ה-Terminal של Coddy. שיעור 76 מתוך 82.
אתגר
קלעכשיו נרחיב את סקריפט הגיבוי כדי ליצור תיקיית גיבוי שבה יאוחסנו הקבצים.
כתבו מחדש את backup.sh מההתחלה, כך שיכיל את הסקריפט המלא והמעודכן. השתמשו ב־> בשורה הראשונה כדי להחליף את הקובץ, ואז ב־>> כדי להוסיף כל שורה שאחריה:
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
echo 'backup_dir="backup"' >> backup.sh
echo 'mkdir -p "$backup_dir"' >> backup.sh
echo 'echo "Created backup folder: $backup_dir"' >> backup.shכל שורה מוקפת במירכאות יחידות, כך שה־shell כותב לקובץ את $source_dir ואת $backup_dir כלשונם, במקום להחליף אותם בערכים שלהם.
לאחר מכן, הפכו אותו לקובץ בר־הרצה:
chmod +x backup.shלבסוף, הריצו את הסקריפט עם documents כקלט. הטרמינל הזה אינו אינטראקטיבי, לכן העבירו את התשובה לסקריפט במקום להמתין שיתבקש מכם להזין אותה:
echo "documents" | ./backup.shהפלט אמור להיות:
Backing up: documents
Created backup folder: backupודאו שהתיקייה נוצרה על ידי הרצת ls כדי להציג את תוכן הספרייה. הפלט אמור להציג את תיקיית backup החדשה לצד הקבצים האחרים שלכם.
רמז: הדגל
-pב־mkdir -pמונע שגיאות אם הספרייה כבר קיימת. הקפידו להשתמש במירכאות סביב המשתנים שלכם (לדוגמה,"$backup_dir") כדי לטפל בהם בבטחה.
נסו בעצמכם
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
chmod +x backup.sh
echo "documents" | ./backup.shכל השיעורים ביחידה יסודות
7תוכן הקובץ
ראש וזנבספירת מיליםפקודת המיוןפקודת הסינון לכפילויותיסודות grepgrep עם דגליםסיכום – בלש/ית טקסט13יסודות כתיבת סקריפטים ב-Shell
מהו סקריפט Shellיצירה והרצה של סקריפטמשתנים בסקריפטיםקלט משתמש בסקריפטיםמשפט ifלולאת forלולאת whileסיכום – נחשו את המספר2ניווט
הצגת ספריית העבודההצגת קבציםשינוי ספרייהנתיבים מוחלטים לעומת יחסייםספריית הבית וספריית השורשסיכום – מצאו את הדרך8ניתוב מחדש
פלט סטנדרטיכתיבה לקובץ תוך דריסת התוכןהוספה לקובץקלט סטנדרטישגיאה סטנדרטיתסיכום – בונה יומני רישום14פרויקט סקריפט לגיבוי
סקירת הפרויקטקבלת נתיב המקורתרגלו בעצמכם: Terminal אונליין