LINUX.ORG.RU

Релиз tree 1.7.0

 


2

0

tree — рекурсивный ls в виде дерева с поддержкой LS_COLORS, печатает в виде дерева содержимое директорий, подсвечивая типы файлов и директории, как это делает ls.

Список изменений в версии 1.7.0:

  • Добавлена возможность отображать имена групп и пользователей до 32 знаков.
  • Вывод в XML и JSON, через аргумент -i — более компактный.
  • Добавлен аргумент --caseinsensitive (переименованный --ignore-case).
  • Добавлена опция --matchdirs.
  • Устранено переполнение буфера при работе с длинными uid/gids и с именами пользователей/групп.
  • Добавлена поддержка JSON.
  • Исправлен вывод в формат HTML, используя аргумент -L 1.
  • Добавлена сортировка по размеру файла.
  • Добавлена опция --sort[=]<name>.
  • Исправлены проблемы с makefile в OS X.
  • Устранено переполнение памяти в read_dir.
  • Устранена ошибка в Solaris.
  • Улучшено обнаружение UTF-8 locales.

Скачать

>>> Полный список изменений

И до сих пор никто не спросил, чем оно лучше ls...

Dmitry_Sokolowsky ★★★★★ ()

Народная примета: если утром пакет приходит в stable арча, вечером жди новости на лоре.

d ★★★ ()

О, хорошо, надо будет пощупать :3

Indexator ★★★ ()
Ответ на: комментарий от Dmitry_Sokolowsky

5 звёзд, а такую ерунду пишешь. Это же разные программы, служащие для разных задач.

man ls
man tree

peregrine ★★★★★ ()

Эм, а может им еще yaml запилилть?

deterok ★★★★★ ()
Ответ на: комментарий от yoghurt

Тебе сказать нечего, или ты просто рад меня видеть?

deterok ★★★★★ ()

ЕМНИП, ls такое умеет с каким-то ключом

Lincor ()
Ответ на: комментарий от anonymous
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

Но это уже не просто ls, да и вывод не очень информативный.

peregrine ★★★★★ ()

Отличная штука, не знал о ней раньше. Возьму на вооружение.

encyrtid ★★★★★ ()

Моя любимая утилита. Она мне заменяет файловый менеджер.

chg ★★★★★ ()
Ответ на: комментарий от puding

нафиг, если есть locate

расскажи, как ты дошел до сравнения обертки для find под названием locate и самостоятельной утилиты tree, которая дает красивый вывод в стиле ls?

autonomous ★★★★ ()

кто подскажет штуку, которая создаст по выводу tree такую же структуру файлов.
//когда-то общался на эту тему с адриано32 =)

dada ★★★★★ ()
Ответ на: комментарий от sphericalhorse

Толсто

что толстого-то? ты знаешь как locate работает? утилитка updatedb find-ом пробегает по диску и составляет файлик с индексом того, что нашел find, по которому уже ищет locate.

autonomous ★★★★ ()
Ответ на: комментарий от autonomous

расскажи, как ты дошел до сравнения обертки для find под названием locate и самостоятельной утилиты tree, которая дает красивый вывод в стиле ls?

Чтобы долго не искать по дереву, лучше найти одной строкой.

puding ()
Ответ на: комментарий от autonomous

ты знаешь как locate работает?

Знаю.

что толстого-то?

То что ты не знаешь, а ещё кричишь на других.

утилитка updatedb find-ом пробегает по диску

Откуда инфа? Я с легкостью признаю, что я не прав, если ты докажешь, что updatedb пробегает find-ом.

sphericalhorse ★★★★ ()
Ответ на: комментарий от sphericalhorse

что толстого-то?

То что ты не знаешь, а ещё кричишь на других.

лол

утилитка updatedb find-ом пробегает по диску

Откуда инфа? Я с легкостью признаю, что я не прав, если ты докажешь, что updatedb пробегает find-ом.

запусти updatedb, да посмотри дочерние процесс

~$ pstree -a `ps aux|grep updatedb|grep sudo |awk '{print $2}'`
sudo updatedb
  └─updatedb /usr/local/bin/updatedb
      ├─frcode -0
      ├─sort -z -f
      └─updatedb /usr/local/bin/updatedb
          └─find / ( -fstype nfs -o -fstype NFS -o -fstype proc -o -fstype afs -o -fstype smbfs -o -fstype autofs -o -fstype iso9660 -o ...
autonomous ★★★★ ()
Ответ на: комментарий от puding

Чтобы долго не искать по дереву, лучше найти одной строкой.

find/locate

- не покажут права на файлы как ls

- не покажут иерархию каталогов как tree

autonomous ★★★★ ()
Ответ на: комментарий от sphericalhorse
~$ cat /etc/issue
Ubuntu 12.04.2 LTS \n \l
~$ dpkg -l |grep locate
ii  locate                               4.4.2-4ubuntu1                                      maintain and query an index of a directory tree

так признаешь или нет? :)

autonomous ★★★★ ()
Ответ на: комментарий от autonomous

Хорошо. В той реализации update'а, которая у тебя в системе, внутри используется find, но это не значит, что «locate — обертка для find». Совсем. Никак.

sphericalhorse ★★★★ ()
Ответ на: комментарий от autonomous

Значит tree нужен не для поиска, а только чтобы видеть иерархию и сразу аттрибуты.

puding ()
Ответ на: комментарий от sphericalhorse

Хорошо. В той реализации update'а, которая у тебя в системе, внутри используется find, но это не значит, что «locate — обертка для find». Совсем. Никак.

это дефолт в убунте и дебиане, расскажи как и где locate работает по другому? я поставил только что пакет mlocate на centos, там в дочерних процессах видно только updatedb, дочерних процессов вроде нет. теперь ты докажи, что locate совсем никак не использует find и не является для него оберткой :)

autonomous ★★★★ ()
Ответ на: комментарий от autonomous

locate совсем никак не использует find и не является для него оберткой

Во-первых: использовать и быть оберткой — разные понятия.
Во-вторых: как мы выяснили, find используют некоторые реализации updatedb, но locate совсем никак его не использует.

sphericalhorse ★★★★ ()
Ответ на: комментарий от sphericalhorse

можно все разложить по полочкам и станет понятнее, почему locate можно считать враппером для find. смысл locate это быстрый поиск файлов. скорость добивается сканированием файловой системы и составлением базы данных с именами файлов. строго говоря, locate это утилитка, которая парсит маленький файлик со списком всех файлов системы. данный файлик можно создать и с помощью ls и с помощью find и собственного костыля. данный файлик обычно создается командой updatedb, которая в самых популярных дистрибутивах использует findutils, а конкретно обычный запуск find с определенными параметрами.

теперь что такое враппер/обертка? википедия пишет следующее

Обёртка системного вызова — программный модуль, перехватывающий поток ввода-вывода и изменяющий его в соответствии с заложенной программой.

в нашем случае роль системного вызова исполняет find, а обертку updatedb, который перехватывает ввод-вывод find-а и изменяет его в соответствии со структурой индексного-файлика. то есть если брать классическое определение обертки, считать, что updatedb и locate это две части одной программы, а debian и ubuntu самыми популярными в мире линукс дистрибутивами, то мы приходим к выводу, что locate в большинстве случаев является оберткой для find :)

зы: locate это важная штука для быстрого поиска файликов, но она не гарантирует что результаты поиска будут верными, так как файлы могут быть удалены или созданы после последней индексации updatedb. в отличии от find, который всегда дает точную информацию, есть ли конкретный файл в системе прямосейчас или нет. locate быстрее ищет только за счет того, что за нее уже поискал find или кто-то еще :)

autonomous ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.