Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إضافة طابع زمني

جزء من قسم الأساسيات في رحلة Terminal على Coddy. الدرس 78 من 82.

challenge icon

التحدي

سهل

لنجعل اسم مجلد backup فريدًا بإضافة طابع زمني. بهذه الطريقة، ينشئ كل backup مجلدًا جديدًا بدلًا من الكتابة فوق المجلد السابق.

عدّل backup.sh من أجل:

  1. الإبقاء على كل الشيفرة الحالية من الدرس السابق
  2. استبدال backup_dir="backup" الثابت باسم ديناميكي يتضمن طابعًا زمنيًا
  3. استخدام استبدال الأوامر مع الأمر date لإنشاء طابع زمني بالتنسيق YYYYMMDD_HHMMSS
  4. يجب أن يكون اسم مجلد 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

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Terminal