Отображение дерева каталогов Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь использовать команду tree в Linux. Команда tree представляет собой мощный инструмент, который отображает структуру каталогов и файлов в иерархическом, древовидном формате. Такое визуальное представление упрощает понимание организации файлов и каталогов в вашей системе.

Команда tree особенно полезна для системных администраторов, разработчиков и всех, кто нуждается в навигации по сложным структурам каталогов. К концу этого практического занятия вы сможете использовать как базовые, так и продвинутые функции команды tree для эффективного визуального представления структур каталогов.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicSystemCommandsGroup -.-> linux/tree("Directory Tree Display") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/tree -.-> lab-271413{{"Отображение дерева каталогов Linux"}} linux/touch -.-> lab-271413{{"Отображение дерева каталогов Linux"}} linux/mkdir -.-> lab-271413{{"Отображение дерева каталогов Linux"}} linux/apt -.-> lab-271413{{"Отображение дерева каталогов Linux"}} end

Установка и использование базовой команды tree

На этом этапе вы установите команду tree и узнаете о ее базовых возможностях.

Установка команды tree

Сначала убедимся, что команда tree установлена в вашей системе. В терминале введите:

if ! command -v tree &> /dev/null; then
  sudo apt-get update
  sudo apt-get install -y tree
fi

Этот код проверяет, установлена ли уже команда tree. Если нет, он обновляет списки пакетов и устанавливает ее для вас.

Создание примерной структуры каталогов

Перед использованием команды tree нам нужна структура каталогов для визуализации. Убедитесь, что вы находитесь в правильном рабочем каталоге:

cd ~/project

Теперь создадим примерную структуру каталогов, представляющую журнальные файлы, организованные по месяцам:

mkdir -p ./logs/2023/{January,February,March}
touch ./logs/2023/January/log1.txt
touch ./logs/2023/February/log2.txt
touch ./logs/2023/March/log3.txt

Эта последовательность команд:

  • Создает основной каталог с именем logs
  • Внутри logs создает подкаталог с именем 2023
  • Внутри 2023 создает три подкаталога для каждого месяца
  • Создает журнальный файл в каталоге каждого месяца

Использование базовой команды tree

Теперь запустим базовую команду tree, чтобы увидеть нашу структуру файлов:

tree

Вы должны увидеть вывод, похожий на следующий:

.
└── logs
    └── 2023
        ├── January
        │   └── log1.txt
        ├── February
        │   └── log2.txt
        └── March
            └── log3.txt

Команда tree отображает структуру каталогов, начиная от текущего каталога (представленного точкой вверху). Отступы и линии показывают иерархические отношения между каталогами и файлами.

Ограничение глубины дерева каталогов

При работе с большими структурами каталогов просмотр всего дерева может быть трудоемким. На этом этапе вы научитесь ограничивать глубину отображаемого дерева каталогов.

Создание более глубокой структуры каталогов

Создадим более сложную структуру каталогов, чтобы лучше продемонстрировать эту функцию:

mkdir -p ~/project/backups/2023/{January,February,March}/{week1,week2,week3}
touch ~/project/backups/2023/January/week1/data.bak

Этот код создает:

  • Каталог backups со структурой, похожей на нашу структуру журналов
  • Дополнительный уровень для недель внутри каждого месяца
  • Примерный файл резервной копии в папке week1 января

Использование опции -L для ограничения глубины

Опция -L позволяет указать, насколько глубоко дерево должно отображаться. Ограничим наш просмотр до 3 уровней:

tree -L 3

Вы должны увидеть вывод, похожий на следующий:

.
├── backups
│   └── 2023
│       ├── January
│       ├── February
│       └── March
└── logs
    └── 2023
        ├── January
        ├── February
        └── March

Обратите внимание, что каталоги недель и файлы внутри них не отображаются, так как они находятся на 4-м уровне, а мы ограничили отображение до 3 уровней.

Изменение уровня глубины

Вы можете изменить число после -L, чтобы показать больше или меньше уровней. Попробуем с глубиной 4:

tree -L 4

Теперь вы должны увидеть каталоги недель, но не файлы внутри них:

.
├── backups
│   └── 2023
│       ├── January
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       ├── February
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       └── March
│           ├── week1
│           ├── week2
│           └── week3
└── logs
    └── 2023
        ├── January
        │   └── log1.txt
        ├── February
        │   └── log2.txt
        └── March
            └── log3.txt

Возможность контролировать глубину дерева полезна, когда вам нужен только общий обзор сложной структуры каталогов.

Отображение только каталогов

Иногда вам может понадобиться посмотреть только на структуру каталогов без отображения файлов. На этом этапе вы научитесь отображать только каталоги с помощью команды tree.

Использование опции -d

Опция -d сообщает команде tree отображать только каталоги и игнорировать файлы. Попробуем это:

tree -d

Вы должны увидеть вывод, похожий на следующий:

.
├── backups
│   └── 2023
│       ├── January
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       ├── February
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       └── March
│           ├── week1
│           ├── week2
│           └── week3
└── logs
    └── 2023
        ├── January
        ├── February
        └── March

Обратите внимание, что ни один из файлов (например, log1.txt или data.bak) не отображается в этом представлении.

Комбинирование опций

Вы можете комбинировать несколько опций, чтобы дополнительно настроить вывод. Например, чтобы показать только каталоги до глубины 2 уровней:

tree -d -L 2

Это отобразит:

.
├── backups
│   └── 2023
└── logs
    └── 2023

Добавление подсчета каталогов

Чтобы увидеть, сколько каталогов находится в каждом поддереве, вы можете добавить флаг -a:

tree -d -a

Внизу вывода вы увидите сводку, показывающую количество каталогов:

X directories

Где X - общее количество каталогов.

Просмотр только структуры каталогов особенно полезен, когда вы хотите понять организацию проекта, не отвлекаясь на отдельные файлы.

Резюме

В этом практическом занятии (лабораторной работе) вы научились использовать команду tree в Linux для визуализации структур каталогов. Вы начали с базового использования, создавая и просматривая простые иерархии каталогов. Затем вы изучили более продвинутые функции, такие как ограничение глубины отображаемых каталогов с помощью опции -L и отображение только каталогов с помощью опции -d.

Эти навыки помогут вам более эффективно перемещаться по сложным файловым системам и понимать их структуру. Команда tree представляет собой ценный инструмент для системных администраторов, разработчиков и всех, кто работает с организованными файловыми структурами в Linux-окружениях. Ясная визуализация иерархии каталогов позволяет вам лучше управлять своими файлами и решать проблемы, связанные с каталогами.