Дерево каталогов linux что это

Утилита tree — просмотр дерева директорий в командной строке

Утилита tree

Обычно для просмотра списка файлов и директорий в командной строке Linux используется команда ls . В данной заметке мы рассмотрим, как выводить древовидный список файлов и директорий. Для этого мы воспользуемся утилитой/командной tree

Команда tree рекурсивно обходит все вложенные директории и файлы для выбранной директории и выводит информацию в удобном древовидном формате.

Установка утилиты tree

По умолчанию утилита tree не установлена в популярных дистрибутивах Linux.

Для установки в Ubuntu выполните в терминале команду:

Для установки в Fedora выполните команду:

Синтаксис команды tree

Команду tree можно использовать следующим образом:

Опции

У команды довольно много опций, остановимся только на некоторых из них:

Полный список опций команды tree можно получить, выполнив команду man tree

Примеры использования

Рассмотрим несколько примеров использования команды tree

Дерево текущей директории

Выведем дерево файлов в текущей директории. Выполняем команду tree без аргументов:

Вывод размеров файлов

Воспользуемся опцией -h , чтобы показать размеры файлов:

Вывод владельца и даты

Выведем размеры, владельца, группу и дату изменения:

Источник

IT1100: Операционные системы UNIX

Понятие каталога позволяет систематизировать все объекты, размещенные на носителе данных (например, на диске). В большинстве современных файловых систем используется иерархическая модель организации данных: существует один каталог, объединяющий все данные в файловой системе — это “корень” всей файловой системы, корневой каталог .

Корневой каталог может содержать любые объекты файловой системы, и в частности, подкаталоги ( каталоги первого уровня вложенности). Те, в свою очередь, также могут содержать любые объекты файловой системы и подкаталоги (второго уровня вложенности) и т. д. Таким образом, все, что записано на диске — файлы, каталоги и специальные файлы — обязательно “принадлежит” корневому каталогу: либо непосредственно (содержится в нем), либо на некотором уровне вложенности.

Иерархию вложенных друг в друга каталогов можно соотнести с иерархией данных в системе: объединить тематически связанные файлы в каталог, тематически связанные каталоги — в один общий каталог и т. д. Если строго следовать иерархическому принципу, то чем глубже будет уровень вложенности каталога, тем более частным признаком должны быть объединены содержащиеся в нем данные. Если не следовать этому принципу, то вскоре окажется гораздо проще складывать все файлы в один каталог и искать среди них нужный, чем выполнять такой поиск по всем подкаталогам системы. Однако в этом случае о какой бы то ни было систематизации файлов говорить не приходится.

Структуру файловой системы можно представить наглядно в виде дерева, “корнем” которого является корневой каталог, а в вершинах расположены все остальные каталоги. На рис. 3.1 изображено дерево каталогов, курсивом обозначены имена файлов, прямым начертанием — имена каталогов.

Рис. 3.1. Дерево каталогов в Linux

В любой файловой системе Linux всегда есть только один корневой каталог, который называется ”/”. Пользователь Linux всегда работает с единым деревом каталогов, даже если разные данные расположены на разных носителях: нескольких жестких или сетевых дисках, съемных дисках, CD-ROM и т. п.

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

Положение любого каталога в дереве каталогов точно и однозначно описывается при помощи полного пути. Полный путь всегда начинается от корневого каталога и состоит из перечисления всех вершин, встретившихся при движении по ребрам дерева до искомого каталога включительно. Названия соседних вершин разделяются символом ”/” (”слэш”). В Linux полный путь, например, до каталога ”ivan” в файловой системе, приведенной на рис. 3.1, записывается следующим образом: сначала символ ”/”, обозначающий корневой каталог, затем к нему добавляется ”home”, затем разделитель ”/”, за которым следует название искомого каталога ”ivan”, в результате получается полный путь ”/home/ivan”.

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

Источник

Глава 5 Дерево каталогов Linux

Глава 5 Дерево каталогов Linux

Эта глава полностью посвящена структуре и размещению каталогов и файлов в Linux. Поскольку для различных дистрибутивов структура может слегка отличаться, для определенности будем рассматривать дистрибутив Red Hat 7.1.

Для того чтобы ориентироваться в Linux, необходимо хорошо представлять себе структуру и размещение каталогов и файлов. Эти параметры для UNIX и Linux описаны в документе «Filesystem Hierarchy Standard – Version 2.2 final», Filesystem Hierarchy Standard Group, edited by Rusty Russell and Daniel Quinlan, редакция от May 23, 2001. Дальнейший текст в основном базируется на этом документе.

Все файлы можно разделить по двум признакам – доступность (shareable, разделяемость) на сетевом уровне и изменяемость/неизменность содержимого.

Соответственно, для каждого признака можно ввести свои понятия:

разделяемые данные – те, которые могут использовать несколько хостов одновременно, т. е. данные, доступные для других хостов через сеть;

неразделяемые данные – как правило, специфичные для каждого хоста, недоступные через сеть для других хостов;

статические данные – включают системные файлы, библиотеки, документацию и другое, что не изменяется без вмешательства администратора;

динамические (переменные) данные – все то, что может изменяться пользователем.

Эти признаки взаимно ортогональны, в табл. 5.1 приведены некоторые каталоги, соответствующие этим признакам.

Таблица 5.1. Признаки данных и каталоги

Как видно из таблицы, каталог /usr – статический разделяемый, а каталог /var/lock – динамический неразделяемый. По этим признакам можно распределить все каталоги в файловой системе, о чем и будет упоминаться в соответствующих разделах. Однако такое четкое распределение не всегда наблюдается в современных UNIX-системах. Как правило, эта проблема возникает из-за поддержки совместимости со старым программным обеспечением. Каталоги, не удовлетворяющие четкому разделению, будут упомянуты особо.

Иерархия каталогов Linux

В табл. 5.2 приведена иерархия каталогов первого уровня.

Таблица 5.2. Каталоги первого уровня операционной системы Linux

Рассмотрим подробнее иерархию каталогов.

Корневой (Root) каталог

Точка монтирования всей файловой системы. Играет исключительно важную роль в процессе «жизнедеятельности» операционной системы. Для загрузки системы необходимо, чтобы в корневом разделе (корневой раздел в Linux – это аналог диска С: для DOS/Windows – только на него возможно установить операционную систему. И корневой раздел является точкой монтирования корневого каталога) находились утилиты и конфигурационные файлы, необходимые для монтирования других файловых систем. Кроме того, в корневой файловой системе должны присутствовать утилиты, необходимые для создания, восстановления или ремонта файловых систем, а также для административного восстановления (backup) системы с ленты, CD-ROM, дискет и тому подобных носителей. Каталоги /usr, /opt, /var спроектированы так, что они могут размещаться на файловых системах, отличных от корневой. В дистрибутиве Slackware в корневом каталоге по умолчанию находится ядро операционной системы (что на больших винчестерах иногда вызывало определенные проблемы), в дистрибутиве Red Hat ядро операционной системы перенесено в каталог /boot.

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

• это позволяет монтировать файловую систему с очень маленьких носителей информации (например дискет);

• корневая файловая система не может быть разделяемой, потому что содержит много системно-зависимых конфигурационных файлов. Создание малой по объему корневой файловой системы позволяет сохранить на серверах больше места для разделяемых ресурсов;

• у маленького по объему корневого каталога меньше вероятность пострадать при крахе системы.

Содержит важные исполняемые файлы, которые используются всеми (в том числе и администратором системы) пользователями. Кроме того, в каталоге /bin должны находиться исполняемые файлы, необходимые для функционирования системы в однопользовательском режиме (single mode). Он также может содержать исполняемые файлы, которые напрямую используются в скриптах. Каталог /bin не должен содержать подкаталогов. Исполняемые файлы, от которых напрямую не зависит функционирование системы, рекомендуется размещать во вторичной иерархии – в каталоге /usr/bin.

Таким образом, в каталоге /bin должны находиться следующие файлы или символические ссылки на команды:

• cat – утилита, выдающая на стандартное устройство вывода объединенные файлы;

• chgrp – утилита, позволяющая изменить группу владельца файла;

• chmod – утилита, изменяющая права доступа к файлу;

• chown – утилита, изменяющая владельца и группу файла;

• ср – утилита, позволяющая копировать файлы и каталоги;

• date – утилита, позволяющая вывести или установить системные дату и время;

• dd – утилита, позволяющая конвертировать и копировать файл;

• df – утилита, показывающая использование дискового пространства;

• dmesg – утилита, выводящая или управляющая буфером сообщения ядра;

• echo – утилита, отображающая строку текста;

• false – утилита возвращает значение «Не успешно» (unsuccessfully);

• hostname – утилита, показывающая или устанавливающая имя хоста;

• kill – утилита, посылающая управляющие сигналы процессам;

• In – утилита, создающая линки (связи, ссылки) между файлами;

• login – утилита, начинающая сессию в системе;

• Is – утилита, показывающая содержимое каталога;

• mkdir – утилита, позволяющая создавать каталог;

• mknod – утилита, создающая блочные или символьные специальные файлы;

• more – утилита, позволяющая просматривать текстовые файлы постранично;

• mount – утилита, монтирующая файловую систему;

• mv – утилита, перемещающая или переименовывающая файлы;

• ps – утилита, показывающая статус процессов;

• pwd – утилита, выводящая имя текущего рабочего каталога;

• rm – утилита, удаляющая файлы или каталоги;

• rmdir – утилита, удаляющая пустой каталог;

• setserial – программа настройки последовательных портов;

• sh – командная оболочка Bourne;

• sty – утилита, изменяющая и выводящая установки терминальной линии;

• su – утилита, изменяющая пользовательский идентификатор (user ID);

• sync – утилита, сбрасывающая (flush) буферы файловой системы;

• true – утилита возвращает значение «Успешно» (successfully);

• umount – утилита, размонтирующая файловые системы;

• uname – утилита, выводящая системную информацию.

Если в системе не используется утилита sh, то sh должна быть ссылкой на используемую системой командную оболочку.

Если установлены соответствующие пакеты, в каталоге /bin могут присутствовать следующие программы или символические ссылки:

• csh – командная оболочка С shell;

• tar – архивная утилита;

• cpio – архивная утилита;

• gzip – утилита архивации файлов GNU;

• gunzip – утилита разархивации файлов GNU;

• zcat – утилита разархивации файлов GNU;

• netstat – утилита сетевой статистики;

• ping – ICMP-сетевая утилита.

Содержит все, что требуется для процесса загрузки, исключая файлы конфигурации. В каталоге /boot находятся данные, используемые ядром до того, как оно начинает исполнять программы пользовательского режима (user-mode). В этом же каталоге может находиться сохраненный сектор master boot и другие специфичные данные. Конфигурационные файлы загрузчика находятся в каталоге /etc. Ядро операционной системы, как было сказано выше, должно находиться или в корневом каталоге (дистрибутив Slackware), или в каталоге /boot (дистрибутив Red Hat). В некоторых случаях приходится создавать отдельный раздел /boot, находящийся до 1024 цилиндра. Как правило, это зависит от версии загрузчика и от BIOS компьютера. Таким образом, в каталоге /boot версии Linux Red Hat 7.1 должны находиться следующие файлы или символические ссылки на команды:

Источник

Команда tree linux

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

Чтобы команда работала на машинах с ОС Linux, нужно от имени администратора установить соответствующую утилиту — в набор «из коробки» она не входит.

Синтаксис и опции tree

Запись команды tree ничем не отличается от большинства стандартных команд и выглядит следующим образом:

$ tree опции

Опций у команды tree множество. Вот те из них, которые отвечают за отображение дерева папок:

  • -a — вывод всех без исключения файлов.
  • -d — только список директорий.
  • -l — переход по символическим ссылкам, которые ведут к папкам.
  • -f — содержимое папок будет показано с префиксами пути.
  • -x — учитывает только текущую файловую систему.
  • -L — задает уровень вложенности для отображения в выводе.
  • -R — рекурсивный переход по каталогам всех уровней.
  • -P — отображение файлов, название которых соответствует шаблону.
  • -I — исключение из вывода файлов, название которых соответствует шаблону.
  • -o — печать вывода в файл с заданным именем.
  • —noreport — запрещает команде выводить отчет по количеству папок и файлов в конце дерева.
  • —charset — задает кодировки для отображения графических и html-файлов.
  • —filelimit — папки, которые содержат больше файлов, чем указано, показаны не будут.

А эти опции используются для управления отображением названий документов:

  • -q — заменяет непечатные символы в названиях файлов знаком ?.
  • -N — выводит непечатные символы в названиях файлов как есть.
  • -Q — заключает названия файлов в двойные кавычки.
  • -p — для каждого из файлов указывает его название и список разрешенных действий.
  • -u — печатает имя или идентификатор учетной записи, под которой был создан файл.
  • -g — печатает имя или идентификатор группы пользователей, которая имеет права на доступ к файлу.
  • -s — рядом с названием файла выводит его размер в байтах.
  • -h — выводит размер файла в более простом для человеческого восприятия виде, добавляя к числу буквенное сокращение.
  • -D — печатает дату последнего изменения файла (либо последнее изменение статуса в комбинации с опцией -c).
  • -F — добавляет символ / для папок, = для файлов сокета, * для исполняемых файлов, > для door-файлов, | для специальных файлов FIFO.
  • —inodes — выводит номера индексных дескрипторов для файлов и папок.
  • —device — указывает номер устройства, к которому принадлежит файл или папка.

Опции для сортировки результатов:

  • -v — упорядочивает выдачу по уровням вложенности.
  • -t — сортирует выдачу по дате последнего изменения файлов и папок.
  • -c — сортирует выдачу по дате последнего изменения статуса.
  • -U — результаты будут выведены в том порядке, в котором папки расположены на диске.
  • -r — сортирует выдачу в обратном порядке.
  • —dirsfirst — сначала будут показаны папки, потом — файлы.

Опции отображения дерева:

  • -i — убирает линии («ветки» дерева), файлы и папки отображаются в виде списка.
  • -n — делает дерево одноцветным.
  • -C — возвращает дереву разноцветное отображение после использования опции -n.

Дальше рассмотрим как команда tree в linux может использоваться на примерах.

Примеры использования tree

Самый простой способ использовать команду tree Linux — напечатать в терминале всего лишь одно слово:

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

Немного сократить объем информации можно, попросив команду показывать только папки. Для этого служит опция -d. А чтобы отпилить от дерева еще больше ненужных веток, установим ограничение на количество файлов, которые хранятся в папках (если файлов больше, папка не попадет в выдачу). В этом нам поможет опция —filelimit.

tree -d —filelimit 26

Кстати, нельзя устанавливать лимит меньше, чем 25 файлов.

По умолчанию команда tree в linux не показывает скрытые папки. Чтобы увидеть их, следует воспользоваться опцией -a. Заодно не помешает упорядочить выдачу — например, по уровням вложенности (параметр -v). Ну и почему бы не узнать, когда тот или иной файл был изменен последний раз — добавим к команде еще и -D.

Теперь поработаем с определенной группой файлов. Для примера отберем те, у которых формат pdf — сделать это позволяет опция -P. Она дает команде понять, что нужно выводить только документы, соответствующие маске. Чтобы задать маску для любого количества символов от 0 до бесконечности используется знак *, а чтобы обозначить только 1 символ — знак ?. Название файла или папки следует заключить в одинарные кавычки.

tree -P ‘*.pdf’ —prune

Опция —prune нужна для того, чтобы исключить из выдачи папки, внутри которых нет искомых документов (по умолчанию команда выводит даже те папки, которые не имеют отношения к поисковому запросу).

Вот что получаем в итоге:

Стандартно результат команды tree направляется в терминал. Но есть возможность напечатать его в файл и сохранить для дальнейшего использования. С этой целью создадим документ txt с названием tree_command_results и поместим его в корневой каталог. После этого выполним команду следующего вида:

tree -d -o tree_command_results.txt

Опция -d использована для сокращения количества информации и ее присутствие здесь не обязательно. Опция -o отвечает за перенаправление вывода в файл.

В терминале никакой результат не отображается:

Зато в указанном файле находим перечень папок, который занимает 45 страниц:

Для получения дополнительной информации о файлах дополним команду tree опциями -h (показывает размер), -u (указывает на аккаунт, с которого файл был создан), -p (так мы узнаем, что можно делать с каждым конкретным файлом — только просматривать или также изменять его содержимое). Также используем параметр -f, чтобы видеть полный путь к каждому документу.

Полезный лайфхак — если объединить опции -P и -f, можно быстро находить файлы, затерявшиеся в памяти компьютера:

tree -f -P ‘*studio*’ —prune

Выводы

Пользу команды tree для пользователей Linux переоценить сложно. С ее помощью удается получить всю возможную информацию о файлах и папках, расположенных на жестком диске. Кстати, у нее есть конкурент — более известная команда ls, которая, тем не менее, уступает tree в удобстве и функционале. А как и для чего вы используете команду tree?

Источник

Читайте также:  Intel hd graphics driver windows 10 x64 есть
Оцените статью
-a показывать все файлы, включая скрытые.
-d показывать только директории.
-u показывать владельца или идентификатор пользователя (UID).
-g показывать группу или идентификатор группы (GID).
-L уровень выводить дерево не глубже определенного уровня вложенности.
-h показывать размер файлов.
-D показывать дату последнего изменения файла или директории.
включить подсветку разными цветами.
-X вывести информацию в формате XML.
-J вывести информацию в формате JSON.