الرئيسية قاعدة المعرفة البرمجة والمنطق إدارة الملفات والمجلدات: نسخ ونقل وحذف وبحث
البرمجة والمنطق

إدارة الملفات والمجلدات: نسخ ونقل وحذف وبحث

إنشاء الملفات والمجلدات: touch و mkdir

في بيئات التشغيل الصناعية، تحتاج باستمرار لإنشاء ملفات إعدادات ومجلدات لتنظيم سجلات المستشعرات.

touch config.toml                    # إنشاء ملف فارغ
touch sensor_01.log sensor_02.log    # إنشاء عدة ملفات

mkdir logs                           # إنشاء مجلد واحد
mkdir -p data/sensors/2026/04        # إنشاء مجلدات متداخلة دفعة واحدة
mkdir -p backups/{daily,weekly,monthly}  # عدة مجلدات فرعية

إذا كان الملف موجوداً، فإن touch يحدّث تاريخ التعديل فقط دون تغيير المحتوى.

إنشاء ملف بمحتوى مباشرة

echo "modbus_port=502" > config.ini              # كتابة سطر واحد
echo "scada_host=192.168.1.50" >> config.ini     # إضافة سطر آخر

نسخ ونقل: cp و mv

cp config.toml config.toml.bak       # نسخة احتياطية من ملف
cp -r /var/log/scada/ /backup/       # نسخ مجلد كامل مع محتوياته
cp -p original.log copy.log          # نسخ مع الحفاظ على الصلاحيات

mv old_name.log new_name.log         # إعادة تسمية ملف
mv sensor.log /archive/              # نقل ملف لمجلد آخر

الأمر mv يخدم غرضين: النقل وإعادة التسمية. استخدم -i دائماً مع ملفات مهمة:

cp -i important.conf /etc/           # يسألك قبل الكتابة فوق ملف موجود
mv -i data.db /backup/               # يسألك قبل الكتابة فوق ملف موجود

الحذف: rm و rmdir — بحذر!

rm old_report.txt                    # حذف ملف واحد
rm -i sensitive_data.csv             # يسألك قبل الحذف
rm *.tmp                             # حذف جميع الملفات المؤقتة

rmdir empty_folder                   # حذف مجلد فارغ فقط
rm -r old_logs/                      # حذف مجلد مع كل محتوياته
rm -ri archive/                      # حذف تفاعلي (يسألك عن كل ملف)

تحذير حرج: لا تستخدم أبداً rm -rf / أو rm -rf * بدون التأكد من المجلد الحالي. في الخوادم الصناعية، خطأ واحد في الحذف قد يوقف خط الإنتاج. دائماً نفّذ pwd وls قبل الحذف.

البحث عن الملفات: find و locate

find /var/log -name "*.log"              # البحث بالاسم
find /data -size +100M                   # ملفات أكبر من 100 ميغابايت
find /var/log -mtime -7                  # ملفات مُعدّلة في آخر 7 أيام
find /etc -type f -name "*.conf"         # ملفات إعدادات فقط
find /tmp -name "*.tmp" -exec rm {} \;   # بحث وتنفيذ أمر على النتائج
sudo updatedb                            # تحديث فهرس locate
locate sensor.conf                       # بحث فوري بالفهرس

الفرق: find يبحث في القرص مباشرة (أبطأ لكن دقيق)، وlocate يبحث في فهرس مُخزّن (أسرع لكن قد لا يشمل الملفات الحديثة).

نصيحة عملية

في خوادم المصانع، استخدم find للبحث الدقيق في مجلدات محددة، واستخدم locate للبحث السريع في النظام كاملاً.

# مثال: البحث عن ملفات الإعدادات المعدّلة اليوم
find /etc/scada -type f -mtime 0 -name "*.conf"

أحرف البدل: * و ? و []

ls *.log                             # كل ملفات السجلات
ls sensor_*                          # كل ملفات المستشعرات
cp /data/2026-04-*.csv /backup/      # كل ملفات أبريل

ls sensor_0?.log                     # sensor_01.log إلى sensor_09.log

ls sensor_[1-5].log                  # sensor_1.log إلى sensor_5.log
ls log_[abc].txt                     # log_a.txt أو log_b.txt أو log_c.txt
ls data_[!0-9].csv                   # ملفات لا تبدأ برقم بعد data_

مثال عملي: تنظيم سجلات المستشعرات في مجلدات مؤرخة

سيناريو: مئات ملفات السجلات في مجلد واحد وتريد تنظيمها حسب الشهر.

cd /data/sensor_logs

# إنشاء مجلدات للأشهر
mkdir -p 2026/{01,02,03,04}

# نقل ملفات كل شهر للمجلد المناسب
mv sensor_2026-01-*.csv 2026/01/
mv sensor_2026-02-*.csv 2026/02/
mv sensor_2026-03-*.csv 2026/03/
mv sensor_2026-04-*.csv 2026/04/

# التحقق: عدّ الملفات في كل مجلد
find 2026/01 -type f | wc -l
find 2026/02 -type f | wc -l

# عرض الحجم الكلي
du -sh 2026/*

# إنشاء نسخة مضغوطة
tar -czf sensor_archive_2026_Q1.tar.gz 2026/

الخلاصة

تعلمت في هذا الدرس كيفية إنشاء الملفات والمجلدات، نسخها ونقلها وحذفها، والبحث عنها. هذه المهارات ضرورية لتنظيم بيانات المستشعرات وسجلات التشغيل في المصانع. تذكّر دائماً استخدام -i مع أوامر الحذف والنقل لحماية الملفات المهمة.

files directories cp mv rm find الملفات المجلدات النسخ النقل الحذف البحث