Что такое дерево файлов
Команда 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?
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Л/р №1: Построение дерева каталогов и файлов.
Л/р №2: Права доступа к файлам, копирование, перемещение, поиск.
Л/р №3: Основные функции Midnight Commander.
Лабораторная работа №1
Unix-shell.Построение дерева каталогов и файлов
Введение
Файлы, каталоги, файловая система - дерево каталогов. Практически вся информация на компьютерах представлена в виде файлов. Файл является основной единицей хранения данных и программ обрабатывающих эти данные. Файл - это именованная (т.е. снабженная именем) область внешней памяти. Обычно файлы временно или постоянно хранятся во внешней памяти компьютера - на дисках, магнитных лентах, "флэшках" и т.д. Кроме имени файлы характеризуются целым рядом атрибутов, таких как размер, время создания и т.п. Операционная система и прикладные программы (приложения) получают доступ к файлу по его имени. Максимальная длина имени файла или каталога в Unix 256 символов, включая расширение, имя и расширение разделяются точкой. Расширение указывает на вид информации или на приложение, которым может быть открыт этот файл, например myfile.txt - текстовый файл, myfile.doc - документ MS Word и т.д.
Дерево каталогов
Файлы хранятся в системе вложенных каталогов (директорий) и организуются в файловую систему. Таким образом, файловой системой называется совокупность файлов и каталогов, организованных в древовидную структуру. Ее можно представить как перевернутое вверх корнем дерево (более точный образ - куст у которого от корня идет сразу множество ветвей, а не один ствол). Узлами, из которых расходятся "ветви", являются каталоги, восходящие, в конечном счете, к корневому каталогу. Узлам, из которых не происходит дальнейшего ветвления, как правило, соответствуют файлы, хотя это могут быть и пустые каталоги (см. дерево ниже). Обычно мы говорим: "Каталог (директория) содержит файлы" или "Файл находится в каталоге". Но при этом понимаем, что каталог не является областью памяти, собственно вмещающей сами файлы. Каталог лишь содержит список файлов, с указанием их имен и других атрибутов. По сути, каталог - это специализированный файл, назначением которого является хранение списка отнесенных к нему файлов (в том числе и подкаталогов, которые, как и все каталоги - тоже файлы). "Пустая" файловая система состоит только из корневого каталога.
Рабочий каталог. Текущий каталог, абсолютный путь и относительный путь.
Когда мы входим в систему, то попадаем в свой рабочий каталог, он задан для нас системным администратором и сами мы его поменять не можем. В момент входа он является так же текущим каталогом. Текущим мы можем сделать любой существующий каталог, к которому у нас есть доступ. Зачем нужен текущий каталог? Дело в том, что операционная система осуществляет доступ к файлу или каталогу через его путевое имя или, попросту путь. Существуют два вида путей, абсолютные и относительные. Абсолютный путь - это последовательность имен каталогов, которая начинается от корневого каталога и, следуя по дереву файловой системы, заканчивается именем каталога или файла, с которым мы хотим работать. Относительный путь может быть указан от текущего или рабочего каталога, что может оказаться значительно короче и удобней, чем использование абсолютного пути. Когда мы находимся в рабочем каталоге, нам не нужно указывать пути к каталагам и файлам находящимся в нем. К другим каталогам придется указать путь, но не абсолютный, а гораздо более короткий. Но об этом немного позднее, а пока приступим к работе.
Первые вопросы после входа в систему
Команда pwd сообщила, что наш текущий каталог /home/groups/v100/v100-1. Это полный путь от корневого каталога. Читается путь с права на лево, т.е текущий каталог v100-1 является подкаталогом v100, расположенном в каталоге groups, находящемся в home. Выше каталога home только корневой каталог, о чем свидетельствует начальный "/".
Полезная функция. Попробуйте понажимать клавиши "ВВЕРХ" и "ВНИЗ" на клавиатуре, и Вы увидите, что shell запоминает команды, и этими самыми стрелочками их можно перелистывать и, при необходимости редактировать.
Как видно из примера, имена каталогов при написании пути разделяются символом "/", котрорый называется "слэш". Если путь начинается с "/", то это значит, что указан путь от корневого каталога или полный путь.
Создадим каталог и файл
Удалим каталог и файл
Смена текущего каталога
Мы научились создавать и удалять каталоги, теперь научимся в них заходить и выходить обратно. Поскольку наша текущая директория пуста, то каталоги придется создавать снова.
Вот, впринципе, мы и освоили набор команд, позволяющий построить нам дерево каталогов. Создав каталог firstcat, мы можем создать в нем столько каталогов, сколько потребуется, с любой степенью вложенности. Создаем - mkdir, смотрим - ls, меняем текущий каталог - cd, удаляем, если ошиблись - rmdir. Давайте в последний раз удалим наш многострадальный firstcat (кто забыл, отмотайте назад) и приступим к построению дерева каталогов, паралельно изучая новые команды и возможности.
Начинаем строить дерево
Рекомендуем перерисовать построенное дерево на бумагу, чтобы постоянно видеть его перед собой
Одной командой mkdir можно создать сразу несколько каталогов
Несколько команд mkdir с ключом -p и дерево готово
Работаем с относительными путями. Команда cd
Для удобства работы положите лист с нарисованным деревом перед собой. Команду pwd, как Вы наверное уже поняли, в пределах рабочего каталога можно не использовать, так как путь в текущий каталог отражается в приглашении командной строки и начинается с символа "
", обозначающего рабочий или домашний каталог. В каком бы каталоге мы не находились команда cd
вернет нас в домашний каталог.
При работе с относительными путями есть один весьма существенный момент. Посмотрите на дерево: если мы движемся от корня, то на каждой развилке обязательно должны указать имя очередного каталога, поскольку каждый каталог разветвляется на несколько, и у каждого есть свое имя. Когда мы движемся к корню мы не указываем имени каталога, поскольку каталог, в который мы можем попасть - единственный, вариантов нет. Поэтому вместо имени указывается " .. " (точка,точка).Имена каталогов в путях, даже если это .. разделяются / (слэш).
Создаем текстовый файл редактором vi.
А теперь самостоятельно создайте:
Защита лабораторной работы
Вас могут спросить: Что делает та или иная команда или какой командой выполняется то или иное действие. Что такое корневая, рабочая(домашняя) и текущая директория. Что такое абсолютный и относительный путь. Могут не только спросить, но и попросить продемонстрировать или на бумаге или на компьютере.
Дерево файлов — графическое представление файловой системы в виде разветвляющегося сверху-вниз "дерева" папок и файлов на электронном носителе.
Бывают случаи, когда нам нужно получить такое дерево в виде текстового списка, чтобы переслать его кому-то, например, через файловый сервер. Вручную копировать все имена файлов очень накладно, а стандартных средств для этого Windows не предоставляет.
В таком случае выручит специальная программа, представленная на данной странице. Она легко построит дерево файлов из любой папки и сохранит в одном из нескольких форматов.
NikFileTree 1.8
Программа строит дерево файлов в каталогах и сохраняет его в текстовом файле. Вид результата — дерево, плоский список или HTML-страница.
Коллекционеры бывают разные. Одни собирают марки, другие — антиквариат, а третьи, например, музыку или фильмы. Главное, чтобы всю свою коллекцию можно было кому-то продемонстрировать, чтобы показать, какой Вы коллекционер.
Для марок создаются альбомы, для предметов старины иной раз оборудуют целые комнаты, а вот с современными информационными коллекциями дело обстоит потуже. Можно, конечно, все записать на диски, а потом рассортировать их по полкам и по жанрам, чтобы быстрее находить.
Но, с ростом места на современных жестких дисках, многие отказываются от такого способа хранения, отводя под свое мультимедийное добро сотни гигабайт пространства.
Если учесть, что среднего качества фильм, скачанный из Интернета, весит около 1 гигабайта, то получается, что на 1-терабайтном жестком диске можно смело выделить место под 500 таких фильмецов! Ну, чем не коллекция? Однако упомнить, что где лежит не всегда можно.
Для того чтобы не возникало проблем с поиском, хорошо было бы создать список (и желательно бумажный) всех фильмов/музыки/других файлов, где бы значился каталог, в котором их искать и имя.
Можно, конечно, завести амбарную книгу, дабы вписывать туда все новозагруженные файлы, но на такую перепись времени уйдет мама не горюй :). Сегодня мы научимся создавать списки любых файлов на жестком диске за считанные минуты. Для этого нам понадобится программа NikFileTree.
Вот то, что имеется в ее арсенале:
Возможности NikFileTree
- поиск файлов и распечатка (сохранение) результатов поиска;
- различные виды результата — дерево, плоский список или HTML-отчет;
- фильтр на файлы по нескольким маскам сразу и возможность не выводить в результат пустые папки;
- работа как с локальными дисками (C: и т.п.), так и с сетевыми ресурсами (\\server\share);
- для плоского списка и HTML-отчета предусмотрен настраиваемый вывод размеров файлов (и папок!), времени создания и модификации, атрибутов;
- сортировка по названию, размеру, времени создания или модификации;
- интеграция c Проводником (локальное меню для дисков и папок);
- DOS и Windows кодировки результата.
Ко всем плюсам можно добавить то, что NikFileTree не требует установки, а соответственно может использоваться прямо со съемного носителя (флэшки, диска и т.д.). Таким образом, Вы можете придти к знакомому и легко распечатать весь список его фильмов, чтобы, изучив его, скачать себе то, что нужно.
И от "трепологии" к практике :). Для начала скачаем архив с программой и распакуем его в нужную папку. Теперь можно запускать:
Перед нами главное окно программы. Оно состоит из четырех вкладок со всевозможными настройками, хотя для создания простого списка, можно использовать только вкладку "Главные".
Рассмотрим алгоритм создания дерева файлов.
Пример работы с программой
Допустим, мы хотим создать список фильмов с расширением AVI, которые можно записать на диск и просматривать потом на DVD-плеере. Нет ничего проще: указываем папку, из которой требуется произвести выборку, в окошке "Маска файлов" указываем расширение имени AVI, "Вид результата" пусть будет "Дерево".
Файл-результат по умолчанию создается в той же папке, которая и сканируется, но при желании можно выбрать любую. Осталось только нажать кнопку "Построить дерево" и немного подождать. Для просмотра сгенерированного списка можно всего лишь нажать "Открыть результат" и Вы увидите перечень всех нужных файлов.
Теперь о разнице вариантов создания списков файлов. Дерево файлов Вы можете видеть на предыдущем скриншоте. Плоский список отличается лишь тем, что в нем вы не увидите структуры папок — все папки идут по порядку вместе с помещенными в них файлами.
Хотя плоский список и не очень наглядный, но он имеет ряд преимуществ. Это меньший размер итогового файла и большое количество настроек, которые мы сейчас рассмотрим.
Дополнительные возможности
Переходим на вкладку "Дополнительно".
Здесь находятся дополнительные параметры, которые касаются построения списков файлов. Здесь можно задать способ сортировки файлов, информацию, которая будет характеризовать файлы, параметры датирования файлов и многое другое. Добавлю лишь то, что все возможности данной вкладки доступны только для плоского списка. В остальных же вариантах некоторые пункты будут недоступны.
Хоть для HTML и недоступны многие параметры из предыдущей вкладки, зато имеется отдельная, которая работает только с HTML-списком.
Параметров здесь немного. Мы можем задать заголовок для нашего списка, отметить (или не отмечать) стартовую папку, а также выбрать файл стиля страницы. Последнее, пожалуй — самое интересное.
По умолчанию в папке с программой есть всего один файл стилей — NikFileTree.css, но мы можем на его основе создать стиль с любыми параметрами на наш выбор. Для этого Вам будет достаточно элементарных знаний о каскадных таблицах стилей HTML и/или знания английского языка (в случае с "или" не повредит развитая интуиция :)).
Открываем файл стиля в текстовом редакторе и меняем цвет, размер, фон и все, что пожелаете :). А вот так довольно симпатично выглядит список со стандартным стилем:
Настройки NikFileTree
И вот мы добрались до последней вкладки, именуемой "Проводником":
Здесь всего две кнопки, которые помогают интегрировать NikFileTree в Проводник Windows или удалить его. Зачем это? Чтобы не надо было искать программу, всякий раз, когда требуется создать список файлов каталога.
Если Вы внедрили NikFileTree в Проводник, то чтобы добраться до него следует вызвать меню "Файл" и выбрать пункт с именем текущей папки. Теперь в выпавшем списке Вы без труда отыщете пункт, который отвечает за запуск программы.
Понравилось также, что есть возможность удалиться из Проводника без каких либо последствий и следов в реестре. И вообще NikFileTree оставляет о себе неплохое впечатление. Единственное, что подкачало, так это отсутствие в HTML-списке ссылок на папки и файлы. Чтобы можно было один раз кликнуть на нужном файлике и он открывался.
P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.
Для создания списка файлов введите в адресную строку браузера адрес интересующей папки и нажмите Enter. Сохранить список можно при помощи меню "Файл" — "Сохранить как".
Для того чтобы иметь относительный порядок на своем компьютере, необходимо свои файлы хранить в соответствующих папках. Это значительно упрощает как поиск отдельных файлов, так и работу с группой файлов: перемещение, копирование, удаление и т.п. Такой принцип организации используется в библиотеках, архивах и канцеляриях.
Документы, систематизированные по общему признаку, хранятся в одной папке (или каталоге). Папки подписываются. Получается, что документы не свалены в одну кучу, а разложены по папкам и в итоге можно легко найти необходимый документ.
По аналогии с этим компьютерные файлы объединяют в группы, для которых на компьютере создают папки. Таким образом, назначение папки состоит в объединении файлов и других папок в группы по любому параметру.
На сегодняшний день три понятия:
с точки зрения компьютерной грамотности, означают одно и то же, давайте уточним, что именно.
Папка или директория – это специальное место на компьютерном носителе информации, в котором хранятся имена файлов и сведения об этих файлах (размер файлов, время их последнего обновления, свойства файлов и т.п.)
Понятия «каталог», «директория» появились в компьютерном мире одновременно с понятиями «файл», «файловая система» для упрощения организации файлов. Понятие «папка» в мире компьютеров появилось значительно позднее, точнее, вместе с появлением Windows 95.
Можно придумать собственную систему для хранения файлов и папок на своем компьютере. Например, создать папки, где файлы сгруппированы:
по теме – папки «Обучающие программы», «Счета», «Рыбалка» и т.п., по имени автора материалов – папки «Мамонтов», «Воробьёва» и т.п.. по времени создания – папка «01.01-30.06.2010» с файлами, созданными с 1 января по 30 июня 2010г., папка «3 квартал 2010» и т.п.
Как назвать папку?
Все папки имеют имена. Требования к именам папок те же, что и к именам файлов. Единственное отличие состоит в том, что в имени папки расширение, как правило, не применяется, хотя при необходимости его можно использовать. В каждой папке могут храниться как файлы, так и другие папки, те, в свою очередь, тоже могут содержать файлы и папки и т.д.
Папки чем-то напоминают матрёшки. Про такие папки, находящиеся внутри других папок, говорят, что это вложенные папки. Папка, включающая в себя другие папки, называется родительской или охватывающей.
Если возле названия папки стоит «+», то это значит, что в этой папке есть еще папки и их можно открыть. Для этого надо щёлкнуть по «+» и он поменяется на «-», при этом под названием папки откроется список из папок, содержащихся в открываемой папке.
Если же щелкнуть по «-», то он превратится в «+», а список содержимого папки закроется.
Структура папок
Такую структуру папок (каталогов) называют иерархической древообразной (или древовидной).
Обычно пользователи называют это просто дерево папок.
Корневая папка. Вложенные папки.
Помимо корневой папки диска, папок 1-го, 2-го и т.д. уровней вложенности, есть еще понятие текущей папки. Текущая папка – это папка, с которой в настоящий момент работает пользователь.
Если Вам понадобился файл не из текущей папки, необходимо указать в какой папке (папках) находится этот файл, то есть указать путь к файлу. По аналогии с матрешками файл является самой маленькой матрешкой, вложенной в матрешки бОльшего размера (папки). Чтобы указать полное имя файла (т.е. имя самой маленькой матрёшки), следует поименно назвать все матрешки бОльшего размера (папки).
Что такое полное имя файла
Полное имя файла начинается с указания имени дисковода, затем идет последовательность из имен папок и, наконец, имя файла.
Имя дисковода, имена папок и имя файла в полном имени разделяются символами « \ ».
Например, запись полного имени файла может выглядеть так: D:\Финансы\Счета\Счет-1.doc. Это означает, что файл с именем Счет-1.doc находится в папке Счета, которая в свою очередь находится в папке Финансы на диске D:.
Полный путь к файлу (или путь к файлу) – это часть полного имени, не включающая само имя файла. Путь к файлу Счет-1.doc выглядит так: D:\Финансы\Счета\.
Упражнение по компьютерной грамотности:
Напишите, как выглядит полное имя какого-нибудь файла, находящегося на вашем компьютере в папке «Мои документы»?
Читайте также: