في محاولة لكتابة سكريبت باش يقوم بالبحث في مجلد معين عن ملفات بامتدادات محددة، يجب أولاً علينا فهم بنية السكريبت وخطوات تنفيذه. يبدأ السكريبت بفحص جميع الملفات في المجلد المحدد، ثم يتحقق مما إذا كانت الملفات تحمل إمتدادات .txt و .csv فقط.
لتحقيق ذلك، يمكنك استخدام لوب (حلقة) لتحليل كل ملف في المجلد. يجب أيضاً تتبع الإمتدادات المسموح بها والتحقق مما إذا كان هناك إمتدادات أخرى غير المسموح بها. في حال وجود إمتدادات غير مسموح بها، يتم نقل المجلد إلى “حاوية الانتظار” ويتم كتابة سجل في ملف يحتوي على التفاصيل اللازمة.
-
تحسين أمان وأداء تطبيق SQL في VB.NET28/01/2024
-
فنون التعامل مع ملفات CSV في تطوير البرمجيات21/01/2024
-
تجميع السيارات المحددة باستخدام Lodash11/04/2024
إليك نسخة مبسطة من السكريبت:
bash#!/bin/bash
# المجلد المستهدف
target_folder="/path/to/target/folder"
# المجلد الذي يتم نقله في حالة وجود إمتدادات غير مسموح بها
holding_bucket="/path/to/holding/bucket"
# ملف السجل
log_file="/path/to/log/file.log"
# قائمة الإمتدادات المسموح بها
allowed_extensions=("txt" "csv")
# التأكد من عدم وجود مجلد فرعي
if [ "$(ls -A $target_folder)" ]; then
echo "Error: Subfolders are not allowed."
exit 1
fi
# تحقق من وجود ملفات بإمتدادات غير مسموح بها
for file in "$target_folder"/*; do
extension="${file##*.}"
if [[ ! " ${allowed_extensions[@]} " =~ " $extension " ]]; then
echo "Error: Folder contains invalid extension $extension."
mv "$target_folder" "$holding_bucket"
echo "$(date) - Folder $target_folder moved to $holding_bucket" >> "$log_file"
exit 1
fi
done
# في حالة وجود فقط إمتدادات مسموح بها
echo "Success: Folder $target_folder meets the criteria."
يرجى تخصيص المسارات المناسبة للمجلد المستهدف، والمجلد الذي يتم نقله في حالة الفشل، وملف السجل. يمكنك أيضاً توسيع قائمة الإمتدادات المسموح بها حسب احتياجاتك.
المزيد من المعلومات
بالطبع، سنوسع على الفكرة ونقدم مزيد من المعلومات حول السكريبت. الهدف الأساسي هو تحقيق فحص دقيق للمجلد المستهدف، مع التأكد من أن الملفات داخله تحمل إمتدادات معينة وتلبي الشروط المطلوبة.
-
تخصيص المسارات:
- يجب عليك تعيين المسار الكامل للمجلد المستهدف
target_folder
والذي سيتم البحث فيه عن الملفات. - كذلك، قم بتعيين المسار الكامل لمجلد الانتظار
holding_bucket
الذي سيتم نقل المجلد إليه في حالة وجود إمتدادات غير صالحة. - يُفضل أيضاً تحديد المسار الكامل لملف السجل
log_file
الذي سيحتوي على سجل الأحداث.
- يجب عليك تعيين المسار الكامل للمجلد المستهدف
-
قائمة الإمتدادات المسموح بها:
- يمكنك توسيع قائمة
allowed_extensions
بإضافة المزيد من الإمتدادات المسموح بها، مثلاً:("txt" "csv" "xlsx" "json")
.
- يمكنك توسيع قائمة
-
التحقق من عدم وجود مجلد فرعي:
- تم إضافة فحص يتأكد من عدم وجود مجلد فرعي داخل المجلد المستهدف. يستخدم الأمر
ls -A
لفحص ما إذا كان المجلد غير فارغ.
- تم إضافة فحص يتأكد من عدم وجود مجلد فرعي داخل المجلد المستهدف. يستخدم الأمر
-
التحقق من الإمتدادات:
- يتم استخدام لوب (حلقة) لتحليل كل ملف في المجلد وفحص الإمتدادات.
- يُستخدم الشرط
[[ ! " ${allowed_extensions[@]} " =~ " $extension " ]]
للتحقق من أن الإمتداد ليس ضمن الإمتدادات المسموح بها.
-
السجل:
- تم إضافة كود لتسجيل الأحداث في ملف السجل
log_file
في حالة نقل المجلد إلى مجلد الانتظار.
- تم إضافة كود لتسجيل الأحداث في ملف السجل
-
الإخراج:
- تم إضافة إخراج بسيط يشير إلى نجاح أو فشل العملية ويظهر في حالة تحقيق الشروط.
تذكير: يرجى استخدام الأوامر والمسارات الصحيحة وتخصيص السكريبت حسب احتياجاتك وبيئتك.