إضافة طابع زمني
جزء من قسم الأساسيات في رحلة Terminal على Coddy. الدرس 78 من 82.
التحدي
سهللنجعل اسم مجلد backup فريدًا بإضافة طابع زمني. بهذه الطريقة، ينشئ كل backup مجلدًا جديدًا بدلًا من الكتابة فوق المجلد السابق.
عدّل backup.sh من أجل:
- الإبقاء على كل الشيفرة الحالية من الدرس السابق
- استبدال
backup_dir="backup"الثابت باسم ديناميكي يتضمن طابعًا زمنيًا - استخدام استبدال الأوامر مع الأمر
dateلإنشاء طابع زمني بالتنسيقYYYYMMDD_HHMMSS - يجب أن يكون اسم مجلد backup:
backup_[timestamp]
ينشئ الأمر date مع محددات التنسيق طوابع زمنية:
date +%Y%m%d_%H%M%Sاستخدم استبدال الأوامر $(command) لالتقاط هذا الناتج في متغير:
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"تعمل كتابة script متعدد الأسطر باستخدام
echoواحد لكل سطر، ولكن توجد طريقة أقصر: يمرر مستند here كل شيء حتى الكلمة الختامية مباشرةً إلى الملف.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOFتحافظ علامات الاقتباس حول
'EOF'على عدم توسيع$variablesأثناء كتابة الملف، وهذا هو المطلوب عندما يستخدم script هذه المتغيرات بنفسه.
شغّل script مع documents كإدخال (echo "documents" | bash backup.sh). يجب أن يبدو الناتج كما يلي:
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfullyسيختلف الطابع الزمني في ناتجك بناءً على التاريخ والوقت الحاليين.
تلميح: أضف
timestamp=$(date +%Y%m%d_%H%M%S)قبل تعريفbackup_dir، ثم استخدمbackup_dir="backup_$timestamp"لإنشاء اسم مجلد backup الديناميكي.
جرّب بنفسك
cat > backup.sh << 'EOF'
#!/bin/bash
read -p "Enter source directory: " source_dir
echo "Backing up: $source_dir"
backup_dir="backup"
mkdir -p "$backup_dir"
echo "Created backup folder: $backup_dir"
cp "$source_dir"/* "$backup_dir"
echo "Files copied successfully"
EOF
echo "documents" | bash backup.sh
ls backupجميع دروس الأساسيات
2التنقل
عرض مسار المجلد الحاليعرض الملفاتتغيير المجلدالمسارات المطلقة مقابل المسارات النسبيةمجلد المنزل ومجلد الجذرخلاصة - حدد مسارك8إعادة التوجيه
المخرجات القياسيةالكتابة فوق ملفالإضافة إلى ملفالمدخلات القياسيةالخطأ القياسيمراجعة - بناء سجل الأحداث11الأذونات
فهم الأذوناتقراءة الأذوناتChmod باستخدام الأرقامChmod باستخدام الرموزملكية الملفاتملخص - إحكام الحماية14مشروع سكربت النسخ الاحتياطي
نظرة عامة على المشروعالحصول على مسار المصدرتدرّب بنفسك: Playground لـ Terminal