دستور tree یک ابزار ساده و در عین حال بسیار کاربردی برای نمایش بصری ساختار دایرکتوریها بهصورت یک درخت (Tree) است. این دستور، دایرکتوریها و فایلها را بهصورت سلسلهمراتبی و با استفاده از خطوط و کاراکترهای خاص (مانند ├──، └── و │) نمایش میدهد که درک ساختار پوشهها را بسیار آسان میکند.
ساختار کلی:
tree [option] [directory...]
اگر دایرکتوری مشخص نشود، tree بهطور پیشفرض دایرکتوری فعلی را نمایش میدهد.
گزینههای اصلی tree
| گزینه | توضیح | مثال |
|---|---|---|
-d | فقط دایرکتوریها را نمایش بده (فایلها را نشان نده). | tree -d |
-L n | محدود کردن عمق نمایش به n سطح. | tree -L 2 |
-a | نمایش همه فایلها، از جمله فایلهای مخفی (شروع با .). | tree -a |
-f | نمایش مسیر کامل (Full path) برای هر آیتم. | tree -f |
-F | اضافه کردن کاراکترهای شناساییکننده (/ برای دایرکتوری، * برای فایلهای اجرایی و ...). | tree -F |
-P pattern | نمایش فقط آیتمهایی که با الگوی pattern مطابقت دارند. | tree -P "*.txt" |
-I pattern | حذف (نادیده گرفتن) آیتمهایی که با الگوی pattern مطابقت دارند. | tree -I "node_modules" |
-o filename | نوشتن خروجی در یک فایل بهجای صفحهنمایش. | tree -o output.txt |
-A | استفاده از کاراکترهای ASCII بهجای کاراکترهای یونیکد (برای نمایش بهتر در برخی ترمینالها). | tree -A |
-s | نمایش اندازه هر فایل بههمراه نام آن. | tree -s |
-h | نمایش اندازه بهصورت قابل خواندن برای انسان (Human-Readable) مانند 1K، 2M. | tree -h |
-D | نمایش تاریخ آخرین تغییر (Modification time) فایلها. | tree -D |
-u | نمایش نام مالک (Owner) فایلها. | tree -u |
-g | نمایش نام گروه (Group) فایلها. | tree -g |
-p | نمایش مجوزها (Permissions) فایلها. | tree -p |
مثالهای عملی
۱. نمایش سادهی ساختار دایرکتوری فعلی
tree
خروجی نمونه:
. ├── Documents │ ├── report.pdf │ └── project │ ├── src │ │ ├── main.py │ │ └── utils.py │ └── README.md ├── Downloads └── Pictures
۲. نمایش فقط دایرکتوریها
tree -d
فقط پوشهها نمایش داده میشوند و فایلها نادیده گرفته میشوند.
۳. محدود کردن عمق نمایش
tree -L 2
فقط ۲ سطح از درخت دایرکتوری نمایش داده میشود.
۴. نمایش همهی فایلها (شامل مخفیها)
tree -a
فایلها و دایرکتوریهای مخفی (مانند .git، .bashrc و ...) نیز نمایش داده میشوند.
۵. نمایش با جزئیات (اندازه، تاریخ، مالک)
tree -h -D -u
-
-h: اندازهی قابل خواندن. -
-D: تاریخ تغییر. -
-u: نام مالک.
۶. فیلتر کردن بر اساس الگو
tree -P "*.py"
فقط فایلهای پایتون (با پسوند .py) را نمایش میدهد.
۷. نادیده گرفتن دایرکتوریهای خاص
tree -I "node_modules|.git|__pycache__"
دایرکتوریهای node_modules، .git و __pycache__ را نادیده میگیرد (نمایش نمیدهد).
۸. ذخیرهی خروجی در یک فایل
tree -o structure.txt
ساختار دایرکتوری در فایل structure.txt ذخیره میشود.
مثالهای پیشرفته و ترکیبی
۱. نمایش ساختار یک پروژه با جزئیات و نادیده گرفتن دایرکتوریهای خاص
tree -I "node_modules|.git|__pycache__" -h -D --dirsfirst
-
--dirsfirst: دایرکتوریها را قبل از فایلها نمایش میدهد. -
-I: نادیده گرفتن دایرکتوریهای خاص. -
-h: اندازهی قابل خواندن. -
-D: تاریخ تغییر.
۲. نمایش فقط فایلهای با پسوند .log در کل دایرکتوری (با عمق نامحدود)
tree -P "*.log" -f
-f مسیر کامل را نشان میدهد.
۳. نمایش ساختار با کاراکترهای ASCII (برای ترمینالهای قدیمیتر)
tree -A
۴. نمایش درخت با مجوزها و مالکیت (برای مشاهدهی امنیت فایلها)
tree -p -u -g
-
-p: مجوزها. -
-u: مالک. -
-g: گروه.
نکات کلیدی و کاربردها
-
درک سریع ساختار پروژه:
treeبرای توسعهدهندگان و مدیران سیستم بسیار مفید است تا بهسرعت ساختار یک پروژه یا سیستم را درک کنند. -
مستندسازی: میتوانید خروجی
treeرا در مستندات پروژه قرار دهید تا ساختار پوشهها را توضیح دهید. -
اشتراکگذاری: با استفاده از
-oمیتوانید خروجی را در یک فایل ذخیره کرده و با دیگران به اشتراک بگذارید. -
عیبیابی: برای پیدا کردن سریع فایلهای گمشده یا بررسی ساختار دایرکتوریهای پیچیده.
-
ترکیب با سایر ابزارها: خروجی
treeرا میتوانید باgrepفیلتر کنید یا باlessمشاهده کنید:tree | grep "pattern" tree | less
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: منبع مستندات