TREE(1) دستورات کاربر TREE(1)

نام (NAME)

tree - فهرست کردن محتویات دایرکتوری‌ها در قالب درختی

خلاصه دستور (SYNOPSIS)

tree [-acdfghilnpqrstuvxACDFJQNSUX] [-L سطح [-R]] [-H آدرس_پایه] [-T عنوان] [-o نام_فایل] [-P الگو] [-I الگو] [--gitignore] [--gitfile[=]فایل] [--matchdirs] [--metafirst] [--ignore-case] [--nolinks] [--hintro[=]فایل] [--houtro[=]فایل] [--inodes] [--device] [--sort[=]نام] [--dirsfirst] [--filesfirst] [--filelimit تعداد] [--si] [--du] [--prune] [--charset[=]X] [--timefmt[=]فرمت] [--fromfile] [--fflinks] [--info] [--infofile[=]فایل] [--noreport] [--version] [--help] [--] [دایرکتوری ...]

توضیحات (DESCRIPTION)

دستور tree یک برنامه بازگشتی برای فهرست کردن محتویات دایرکتوری است که خروجی تورفته بر اساس عمق از فایل‌ها تولید می‌کند. اگر متغیر محیطی LS_COLORS تنظیم شده باشد و خروجی به یک ترمینال (tty) ارسال شود، خروجی همانند dircolors رنگی خواهد بود. بدون آرگومان، tree فایل‌های دایرکتوری جاری را فهرست می‌کند. در صورت ارائه آرگومان‌های دایرکتوری، tree تمامی فایل‌ها و دایرکتوری‌های موجود در دایرکتوری‌های داده‌شده را به نوبت فهرست می‌کند. پس از اتمام فهرست‌بندی، tree تعداد کل فایل‌ها و دایرکتوری‌های فهرست‌شده را گزارش می‌دهد.

به‌طور پیش‌فرض، هنگام مواجهه با یک پیوند نمادین (symbolic link)، مسیری که پیوند به آن اشاره دارد بعد از نام پیوند در قالب زیر نمایش داده می‌شود:

    name -> real-path

اگر گزینه -l مشخص شده باشد و پیوند نمادین به یک دایرکتوری واقعی اشاره کند، tree مسیر پیوند نمادین را به‌گونه‌ای دنبال می‌کند که گویی یک دایرکتوری واقعی است.

گزینه‌ها (OPTIONS)

دستور tree گزینه‌ها و سوییچ‌های خط فرمان زیر را می‌پذیرد:

گزینه‌های فهرست‌بندی (LISTING OPTIONS)

چاپ همه فایل‌ها. به‌طور پیش‌فرض tree فایل‌های پنهان (فایل‌هایی که با نقطه '.' آغاز می‌شوند) را چاپ نمی‌کند. در هیچ حالتی tree سازه‌های سیستم فایل '.' (دایرکتوری جاری) و '..' (دایرکتوری والد) را چاپ نمی‌کند.
فقط دایرکتوری‌ها فهرست شوند.
دنبال کردن پیوندهای نمادین در صورتی که به دایرکتوری‌ها اشاره کنند، درست مانند اینکه خود دایرکتوری باشند. در صورت شناسایی پیوندهای نمادینی که به بازگشت بی‌پایان منجر می‌شوند، از آنها صرف‌نظر می‌شود.
چاپ پیشوند مسیر کامل برای هر فایل.
محدود ماندن فقط به سیستم فایل جاری (همانند find -xdev).
حداکثر عمق نمایش درخت دایرکتوری.
پیمایش بازگشتی درخت به ازای هر سطح از دایرکتوری‌ها (گزینه -L را ببینید) و در هر سطح، خروجی در فایلی به نام 00Tree.html نوشته می‌شود (همانند -o).
تنها فایل‌هایی که با الگوی تطبیق (wildcard) همخوانی دارند فهرست شوند. می‌توانید چندین گزینه -P مشخص کنید. نکته: برای در نظر گرفتن فایل‌هایی که با نقطه '.' شروع می‌شوند، باید از گزینه -a نیز استفاده کنید. عملگرهای معتبر عبارتند از: '*' (صفر یا چند کاراکتر)، '**' (صفر یا چند کاراکتر و همچنین اسلش‌های تهی؛ مثلاً /**/ ممکن است با یک اسلش تطبیق یابد)، '?' (هر تک‌کاراکتر)، '[...]' (هر تک‌کاراکتر مشخص‌شده درون قلاب؛ خط تیره برای بازه کاراکتری مجاز است، مانند: [A-Z])، '[^...]' (هر تک‌کاراکتر که درون قلاب نباشد) و '|' که الگوهای جایگزین را جدا می‌کند. وجود '/' در انتهای الگو، با دایرکتوری‌ها تطبیق می‌یابد نه فایل‌ها.
فایل‌هایی که با الگوی تطبیق همخوانی دارند فهرست نشوند. می‌توانید چندین گزینه -I مشخص کنید. برای اطلاعات درباره الگوهای تطبیق، گزینه -P را در بالا ببینید.
استفاده از فایل‌های .gitignore گیت برای فیلتر کردن فایل‌ها و دایرکتوری‌ها. همچنین در صورت وجود، از $GIT_DIR/info/exclude استفاده می‌کند.
استفاده صریح از فایل مشخص‌شده به‌عنوان فایل gitignore.
اگر یک الگوی تطبیق با گزینه -P یا -I مشخص شده باشد، تطبیق الگو بدون حساسیت به بزرگی و کوچکی حروف انجام می‌شود.
اگر الگوی تطبیق با گزینه -P مشخص شده باشد، الگو علاوه بر نام فایل‌ها بر روی نام دایرکتوری‌ها نیز اعمال می‌شود. در صورت تطبیق نام دایرکتوری، بررسی تطبیق برای محتویات آن دایرکتوری غیرفعال می‌گردد. در صورت استفاده از گزینه --prune، پوشه‌های خالی که با الگو همخوانی داشته باشند هرس نخواهند شد.
چاپ اطلاعات فراداده (meta-data) در ابتدای خط به‌جای چاپ پس از خطوط تورفتگی.
هرس کردن دایرکتوری‌های خالی از خروجی؛ هنگام استفاده همراه با -P یا -I بسیار کاربردی است. برای اطلاعات بیشتر بخش «اشکالات و نکات» را ببینید.
چاپ توضیحات فایل موجود در فایل‌های .info. برای اطلاعات بیشتر درباره قالب این فایل‌ها، بخش «فایل‌های .INFO» را ببینید.
استفاده صریح از فایل مشخص‌شده به‌عنوان فایل info.
عدم چاپ گزارش تعداد فایل‌ها و دایرکتوری‌ها در انتهای فهرست درختی.
تنظیم مجموعه نویسه (charset) برای خروجی HTML و رسم خطوط گرافیکی.
دایرکتوری‌هایی که بیش از تعداد مشخص‌شده ورودی دارند پیمایش نشوند.
چاپ تاریخ (ضمن اعمال -D) و قالب‌بندی آن بر اساس رشته فرمت با استفاده از قواعد strftime(3).
ارسال خروجی به نام_فایل.

گزینه‌های فایل (FILE OPTIONS)

چاپ کاراکترهای غیرقابل‌چاپ در نام فایل‌ها به‌صورت علامت سوال به‌جای حالت پیش‌فرض.
چاپ کاراکترهای غیرقابل‌چاپ به‌صورت مستقیم به‌جای نمایش آنها با کدهای هشت‌هشتی (octal).
قرار دادن نام فایل‌ها درون گیومه جفتی (double quote).
چاپ نوع فایل و دسترسی‌ها برای هر فایل (مشابه ls -l).
چاپ نام کاربری یا شناسه کاربری (UID) در صورت عدم وجود نام کاربر.
چاپ نام گروه یا شناسه گروه (GID) در صورت عدم وجود نام گروه.
چاپ اندازه هر فایل به بایت به همراه نام آن.
چاپ اندازه هر فایل در قالبی خواناتر برای انسان؛ برای مثال افزودن پسوندهای کیلوبایت (K)، مگابایت (M)، گیگابایت (G)، ترابایت (T)، پتابایت (P) و اگزابایت (E).
مشابه -h اما با استفاده از واحدهای SI (بر مبنای توان‌های ۱۰۰۰).
گزارش اندازه هر دایرکتوری به‌صورت مجموع اندازه تمام فایل‌ها و زیردایرکتوری‌های آن (و فایل‌های آنها و غیره). مقدار کل فضای مصرفی نیز در گزارش نهایی آورده می‌شود (مشابه دستور du -c). این گزینه نیازمند این است که tree ابتدا کل درخت دایرکتوری را پیش از نمایش در حافظه بخواند. این گزینه متضمن -s است.
چاپ تاریخ آخرین زمان تغییر، یا در صورت استفاده از -c، چاپ زمان آخرین تغییر وضعیت برای فایل فهرست‌شده.
افزودن نشانگر به انتهای نام‌ها: '/' برای دایرکتوری‌ها، '=' برای سوکت‌ها، '*' برای فایل‌های اجرایی، '>' برای درگاه‌ها (doors در سولاریس) و '|' برای لوله‌های نام‌دار (FIFO)، مشابه ls -F.
چاپ شماره اینود (inode) فایل یا دایرکتوری.
چاپ شماره دستگاهی که فایل یا دایرکتوری به آن تعلق دارد.

گزینه‌های مرتب‌سازی (SORTING OPTIONS)

مرتب‌سازی خروجی بر اساس نسخه.
مرتب‌سازی خروجی بر اساس زمان آخرین تغییر فایل به‌جای مرتب‌سازی الفبایی.
مرتب‌سازی خروجی بر اساس زمان آخرین تغییر وضعیت فایل به‌جای مرتب‌سازی الفبایی. گزینه -D را (در صورت استفاده) تغییر می‌دهد تا زمان آخرین تغییر وضعیت چاپ شود.
عدم مرتب‌سازی. فایل‌ها به ترتیبی که در دایرکتوری ذخیره شده‌اند فهرست می‌شوند. گزینه --dirsfirst را غیرفعال می‌کند.
مرتب‌سازی معکوس خروجی. این یک فرا‌مرتب‌سازی است که مرتب‌سازی‌های بالا را معکوس می‌کند. در صورت استفاده از -U این گزینه غیرفعال می‌شود.
فهرست کردن دایرکتوری‌ها پیش از فایل‌ها. این گزینه یک فرا‌مرتب‌سازی است و در صورت استفاده از -U غیرفعال می‌شود.
فهرست کردن فایل‌ها پیش از دایرکتوری‌ها. این گزینه یک فرا‌مرتب‌سازی است و در صورت استفاده از -U غیرفعال می‌شود.
مرتب‌سازی خروجی بر اساس نوع مشخص‌شده به‌جای نام. مقادیر ممکن عبارتند از: ctime (-c), mtime (-t), size (اندازه)، یا version (-v).

گزینه‌های گرافیکی (GRAPHICS OPTIONS)

عدم چاپ خطوط تورفتگی؛ هنگام استفاده همزمان با گزینه -f بسیار کاربردی است. همچنین هنگام استفاده با گزینه‌های -J یا -X فاصله‌های خالی اضافی را تا حد امکان حذف می‌کند.
فعال کردن حالت گرافیک خطی کاراکترهای اسکی ANSI هنگام چاپ خطوط تورفتگی.
فعال کردن گرافیک خطی CP437 (مناسب برای فونت‌های حالت کنسول لینوکس). این گزینه معادل --charset=IBM437 است.
خاموش کردن همیشگی رنگ‌ها. با گزینه -C نادیده گرفته می‌شود، اما متغیر CLICOLOR_FORCE را لغو می‌کند.
روشن کردن همیشگی رنگ‌ها با استفاده از رنگ‌های پیش‌فرض داخلی در صورتی که متغیرهای LS_COLORS یا TREE_COLORS تنظیم نشده باشند. برای رنگی کردن خروجی لوله‌بندی (pipe) کاربردی است.

گزینه‌های XML/JSON/HTML (XML/JSON/HTML OPTIONS)

فعال کردن خروجی XML. درخت دایرکتوری در قالب یک فایل ساختاریافته XML تولید می‌شود.
فعال کردن خروجی JSON. درخت دایرکتوری در قالب یک آرایه JSON تولید می‌شود.
فعال کردن خروجی HTML شامل پیوندهای HTTP. مناسب برای سایت‌های FTP. پارامتر آدرس_پایه مکان پایه FTP را مشخص می‌کند. برای مثال دایرکتوری محلی ممکن است /local/ftp/pub باشد، اما باید به‌صورت ftp://hostname.organization.domain/pub ارجاع داده شود (که در آن آدرس_پایه برابر با ftp://hostname.organization.domain خواهد بود). نکته: همراه با این گزینه از خطوط ANSI استفاده نکنید و بیش از یک دایرکتوری در فهرست دایرکتوری‌ها ارائه ندهید. برای استفاده از رنگ‌ها از طریق استایل‌شیت CSS، گزینه -C را علاوه بر این گزینه به کار ببرید.
استفاده از فایل مشخص‌شده به‌عنوان بخش مقدمه (intro) خروجی HTML به‌جای حالت پیش‌فرض. استفاده از یک فایل خالی یا /dev/null بخش مقدمه را به‌طور کامل حذف می‌کند.
استفاده از فایل مشخص‌شده به‌عنوان بخش پایانی (outro) خروجی HTML به‌جای حالت پیش‌فرض. استفاده از یک فایل خالی یا /dev/null بخش پایانی را به‌طور کامل حذف می‌کند.
تنظیم عنوان صفحه و رشته سربرگ H1 در حالت خروجی HTML.
غیرفعال کردن ابرپیوندها در خروجی HTML.

گزینه‌های ورودی (INPUT OPTIONS)

خواندن فهرست دایرکتوری از یک فایل به‌جای اسکن سیستم فایل. مسیرهای ارائه‌شده در خط فرمان، فایل‌هایی برای خواندن خواهند بود نه دایرکتوری‌هایی برای جستجو. نماد نقطه (.) نشان می‌دهد که tree باید مسیرها را از ورودی استاندارد (stdin) بخواند. نکته: این گزینه فقط برای خواندن خروجی برنامه‌هایی مانند find مناسب است و نه tree -fi، زیرا پیوندهای نمادین از فایل‌هایی که در نام خود عبارت ' -> ' دارند تفکیک نمی‌شوند مگر اینکه گزینه --fflinks به کار رود.
پردازش اطلاعات پیوندهای نمادین موجود در فایل ورودی، مانند خروجی دستور tree -fi --noreport. تنها اولین رخداد عبارت ' -> ' به‌عنوان جداکننده نام فایل از پیوند در نظر گرفته می‌شود.

گزینه‌های گوناگون (MISC OPTIONS)

نمایش توضیحات جامع نحوه استفاده از دستور.
نمایش نسخه برنامه tree.
--
پایان‌دهنده پردازش گزینه‌ها. هیچ گزینه‌ای پس از این پردازش نخواهد شد.

فایل‌های .INFO (.INFO FILES)

فایل‌های .info مشابه فایل‌های .gitignore هستند؛ در صورت یافتن فایل .info هنگام پیمایش یک دایرکتوری، خوانده شده و به پشته اطلاعات info اضافه می‌شود. هر فایل از کامنت‌ها (خطوطی که با علامت # آغاز می‌شوند) یا الگوهای تطبیقی که با فایل‌های درون همان دایرکتوری همخوانی دارند تشکیل شده است. در صورت تطبیق یک فایل با الگو، توضیح دارای تورفتگی تب (tab) که پس از الگو قرار دارد به‌عنوان توضیح فایل به کار می‌رود. هر توضیح با رسیدن به خطی که تورفتگی تب ندارد پایان می‌یابد. چندین الگو می‌توانند توضیح مشترکی داشته باشند.

فایل‌ها (FILES)

/etc/DIR_COLORS
پایگاه داده رنگ‌های سیستمی.
~/.dircolors
پایگاه داده رنگ‌های کاربر.
.gitignore
فایل نادیده‌گیری گیت.
$GIT_DIR/info/exclude
فهرست سراسری نادیده‌گیری فایل‌های گیت.
.info
فایل توضیحات محلی فایل‌ها.
/usr/share/finfo/global_info
فایل سراسری توضیحات فایل‌ها.

متغیرهای محیطی (ENVIRONMENT)

اطلاعات رنگ ایجادشده توسط dircolors.
در صورت تنظیم، این متغیر اولویت بالاتری نسبت به LS_COLORS برای اطلاعات رنگ خواهد داشت.
مجموعه نویسه برای استفاده در حالت HTML.
فعال‌سازی رنگ‌آمیزی حتی اگر TREE_COLORS یا LS_COLORS تنظیم نشده باشد.
فعال‌سازی همیشگی رنگ‌آمیزی (مشابه -C).
غیرفعال‌سازی رنگ‌آمیزی (مشابه -n)؛ به https://no-color.org/ مراجعه فرمایید.
تنظیمات محلی برای چاپ نام فایل‌ها.
تنظیمات محلی برای فرمت زمان خروجی، strftime(3) را ببینید.
منطقه زمانی برای فرمت زمان خروجی، strftime(3) را ببینید.
فعال‌سازی قابلیت stddata، یا تنظیم توصیف‌گر فایل برای خروجی داده‌ها.

نویسندگان (AUTHORS)

استیو بیکر (Steve Baker - ice@mama.indstate.edu)
پیاده‌سازی خروجی HTML توسط فرانچسک روچر (Francesc Rocher - rocher@econ.udg.es)
مجموعه نویسه‌ها و پشتیبانی OS/2 توسط کیوسوکه توکورو (Kyosuke Tokoro - NBG01720@nifty.ne.jp)

اشکالات و نکات (BUGS AND NOTES)

دستور tree به‌طور پیش‌فرض هنگام استفاده از گزینه‌های -P و -I دایرکتوری‌های «خالی» را هرس نمی‌کند. از گزینه --prune استفاده کنید.

گزینه‌های -h و --si برخلاف پیاده‌سازی‌های ls که همیشه رو به بالا گرد می‌کنند، مقدار را به نزدیک‌ترین عدد صحیح گرد می‌کنند.

هرس فایل‌ها و دایرکتوری‌ها با گزینه‌های -I، -P و --filelimit باعث نمایش نادرست آمار تعداد فایل‌ها و دایرکتوری‌ها می‌شود.

گزینه‌های --prune و --du باعث می‌شوند tree پیش از تولید خروجی، کل درخت را در حافظه بارگذاری کند. برای درخت‌های دایرکتوری بزرگ، این امر می‌تواند باعث تاخیر چشمگیر در خروجی و مصرف حجم زیادی از حافظه شود.

بافر گسترش timefmt به ۲۵۵ کاراکتر محدود شده است. خروجی رشته‌های طولانی‌تر از این مقدار نامشخص خواهد بود اما تضمین می‌شود که از ۲۵۵ کاراکتر فراتر نرود.

درخت‌های XML و JSON رنگی نیستند.

از نسخه 2.0.0 در لینوکس، در صورت تعریف بودن متغیر محیطی STDDATA_FD یا تنظیم آن روی یک عدد مثبت غیرصفر، tree تلاش می‌کند خروجی فشرده JSON را روی توصیف‌گر فایل شماره ۳ (که stddata نامیده می‌شود) ارسال کند.

همچنین ببینید (SEE ALSO)

dircolors(1), ls(1), find(1), du(1), strftime(3), gitignore(5)

2022-12-01 Tree 2.1.0