1) ما هو أمر tree ولماذا نستخدمه؟
أمر tree يعرض هيكل المجلدات والملفات بشكل شجرة (Tree view)، وهذا يساعدك:
- تفهم بسرعة هيكل المشروع
- ترى المجلدات الفرعية وما بداخلها
- تعرض هيكل مجلد معيّن بدون الدخول لكل مجلد يدويًا
مثال شكل عام:
project
├── src
│ ├── app.py
│ └── utils.py
└── README.mdBash2) التثبيت (إذا كان غير موجود)
على Ubuntu / Linux Mint
sudo apt update
sudo apt install -y treeBashتأكد أنه موجود:
tree --versionBashإذا ظهر رقم نسخة، خلاص مثبت.
3) الصيغة العامة (Syntax)
tree [OPTIONS] [PATH]Bash- إذا لم تكتب
PATH→ يعرض شجرة المجلد الحالي - إذا كتبت مسار → يعرض شجرة ذلك المسار
4) الاستخدام الأساسي
أ) عرض شجرة المجلد الحالي
cd ~/project
treeBashب) عرض شجرة مجلد محدد
tree ~/projectBash5) إنشاء هيكل تجريبي للتعلم (Practice Setup)
نفّذ التالي:
cd ~/project
mkdir -p tree_demo/documents/reports
mkdir -p tree_demo/src/components
touch tree_demo/README.md
touch tree_demo/documents/report1.txt tree_demo/documents/report2.txt
touch tree_demo/documents/reports/summary.txt
touch tree_demo/src/main.py
touch tree_demo/src/components/button.pyBashالآن اعرض:
tree tree_demoBash6) أهم الخيارات العملية في tree
أ) عرض الملفات مع أحجام “مقروءة”: -h
tree -h tree_demoBashيظهر الحجم بجانب كل ملف (KB/MB…).
ب) عرض المجلدات فقط (بدون الملفات): -d
tree -d tree_demoBashمفيد جدًا لفهم البنية بدون “زحمة” ملفات.
ج) تحديد عمق العرض (Depth): -L
يعرض حتى مستوى معيّن فقط:
tree -L 2 tree_demoBashممتاز للمشاريع الكبيرة.
د) عرض المسار الكامل لكل عنصر: -f
tree -f tree_demoBashيعرض Full Path، مفيد لمعرفة مكان كل ملف بدقة.
هـ) إظهار الملفات المخفية: -a
tree -a tree_demoBashيعرض الملفات التي تبدأ بـ
.مثل.envو.gitignore.
و) استبعاد ملفات/أنماط معينة: -I
مثلاً استبعاد ملفات Python cache أو مجلدات git:
tree -I "__pycache__|*.pyc|.git" tree_demoBashملاحظة:
|هنا يعني “أو” (مثل regex بسيط/قائمة أنماط).
ز) عرض عدد الملفات والمجلدات (عادة يظهر تلقائيًا في النهاية)
في نهاية النتائج تلاحظ شيء مثل:
3 directories, 6 filesBash7) تطبيقات عملية شائعة جدًا
أ) عرض هيكل مشروع برمجي بسرعة
tree -L 3 -I ".git|node_modules|__pycache__" .Bashب) عرض مجلد docs فقط
tree -L 2 ~/project/tree_demo/documentsBashج) مقارنة بنية مجلدين
tree -L 2 dirA
tree -L 2 dirBBash8) بديل إذا لم يتوفر tree (بدون تثبيت)
إذا ما تقدر تثبت tree لأي سبب:
بديل 1 (يعرض المجلدات فقط بشكل شبيه)
find . -type dBashبديل 2 (يعرض ملفات ومجلدات لكن ليس بشكل شجرة جميلة)
find . -maxdepth 2Bash9) تدريب سريع (Practice)
نفّذ هذه الأوامر لتتأكد أنك فهمت:
cd ~/project
# 1) عرض شجرة كاملة
tree tree_demo
# 2) عرض حتى عمق 2
tree -L 2 tree_demo
# 3) مجلدات فقط
tree -d tree_demo
# 4) مسارات كاملة
tree -f tree_demo
# 5) استبعاد reports
tree -I "reports" tree_demoBashهل الشرح الأصلي كافي؟
نعم كبداية ممتاز، لكن إضافة مهمة للمبتدئ:
- استخدامات عملية جاهزة مثل استبعاد
.gitوnode_modules - خيار
-aللملفات المخفية - بدائل
findإذا لم يتوفرtree - أمثلة “عمق العرض” لمشاريع كبيرة