Tree Command

1) ما هو أمر tree ولماذا نستخدمه؟

أمر tree يعرض هيكل المجلدات والملفات بشكل شجرة (Tree view)، وهذا يساعدك:

  • تفهم بسرعة هيكل المشروع
  • ترى المجلدات الفرعية وما بداخلها
  • تعرض هيكل مجلد معيّن بدون الدخول لكل مجلد يدويًا

مثال شكل عام:

project
├── src
   ├── app.py
   └── utils.py
└── README.md
Bash
2) التثبيت (إذا كان غير موجود)
على Ubuntu / Linux Mint
sudo apt update
sudo apt install -y tree
Bash

تأكد أنه موجود:

tree --version
Bash

إذا ظهر رقم نسخة، خلاص مثبت.

3) الصيغة العامة (Syntax)
tree [OPTIONS] [PATH]
Bash
  • إذا لم تكتب PATH → يعرض شجرة المجلد الحالي
  • إذا كتبت مسار → يعرض شجرة ذلك المسار
4) الاستخدام الأساسي
أ) عرض شجرة المجلد الحالي
cd ~/project
tree
Bash
ب) عرض شجرة مجلد محدد
tree ~/project
Bash
5) إنشاء هيكل تجريبي للتعلم (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.py
Bash

الآن اعرض:

tree tree_demo
Bash
6) أهم الخيارات العملية في tree
أ) عرض الملفات مع أحجام “مقروءة”: -h
tree -h tree_demo
Bash

يظهر الحجم بجانب كل ملف (KB/MB…).

ب) عرض المجلدات فقط (بدون الملفات): -d
tree -d tree_demo
Bash

مفيد جدًا لفهم البنية بدون “زحمة” ملفات.

ج) تحديد عمق العرض (Depth): -L

يعرض حتى مستوى معيّن فقط:

tree -L 2 tree_demo
Bash

ممتاز للمشاريع الكبيرة.

د) عرض المسار الكامل لكل عنصر: -f
tree -f tree_demo
Bash

يعرض Full Path، مفيد لمعرفة مكان كل ملف بدقة.

هـ) إظهار الملفات المخفية: -a
tree -a tree_demo
Bash

يعرض الملفات التي تبدأ بـ . مثل .env و .gitignore.

و) استبعاد ملفات/أنماط معينة: -I

مثلاً استبعاد ملفات Python cache أو مجلدات git:

tree -I "__pycache__|*.pyc|.git" tree_demo
Bash

ملاحظة: | هنا يعني “أو” (مثل regex بسيط/قائمة أنماط).

ز) عرض عدد الملفات والمجلدات (عادة يظهر تلقائيًا في النهاية)

في نهاية النتائج تلاحظ شيء مثل:

3 directories, 6 files
Bash
7) تطبيقات عملية شائعة جدًا
أ) عرض هيكل مشروع برمجي بسرعة
tree -L 3 -I ".git|node_modules|__pycache__" .
Bash
ب) عرض مجلد docs فقط
tree -L 2 ~/project/tree_demo/documents
Bash
ج) مقارنة بنية مجلدين
tree -L 2 dirA
tree -L 2 dirB
Bash
8) بديل إذا لم يتوفر tree (بدون تثبيت)

إذا ما تقدر تثبت tree لأي سبب:

بديل 1 (يعرض المجلدات فقط بشكل شبيه)
find . -type d
Bash
بديل 2 (يعرض ملفات ومجلدات لكن ليس بشكل شجرة جميلة)
find . -maxdepth 2
Bash
9) تدريب سريع (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_demo
Bash
هل الشرح الأصلي كافي؟

نعم كبداية ممتاز، لكن إضافة مهمة للمبتدئ:

  • استخدامات عملية جاهزة مثل استبعاد .git و node_modules
  • خيار -a للملفات المخفية
  • بدائل find إذا لم يتوفر tree
  • أمثلة “عمق العرض” لمشاريع كبيرة