Есть ли эквивалент в Ubuntu tree
команды для Mac OS X?
источник
Есть ли эквивалент в Ubuntu tree
команды для Mac OS X?
Вы также можете получить tree
команду на macOS. Если у вас есть Homebrew , все, что вам нужно сделать, это запустить:
brew install tree
Читайте дальше для деталей.
Есть несколько менеджеров пакетов для macOS. Наиболее популярными являются: Homebrew , MacPorts или Fink . Вы можете установить любой из них, но я рекомендую Homebrew. Не устанавливайте более одного из них одновременно!
Следуйте инструкциям на веб-сайте, затем выполните одну из следующих команд, в зависимости от того, какой менеджер пакетов вы выбрали.
Для доморощенного:
brew install tree
Для MacPorts:
sudo port install tree
Для Финка:
fink install tree
Менеджеры пакетов предлагают другие программы командной строки, в том числе GNU / Linux, которые по умолчанию не поставляются с macOS.
Во-первых, вы должны установить инструменты командной строки Xcode, запустив xcode-select --install
.
Затем загрузите tree
исходный код . Затем измените Makefile, чтобы он заработал , что также объясняется в ответе @ apuche ниже . Достаточно закомментировать опции Linux и раскомментировать опции macOS.
Тогда беги ./configure
, потом make
.
Теперь вам нужно переместить tree
двоичный файл в папку, которая находится в вашем пути к исполняемому файлу. Например:
sudo mkdir -p /usr/local/bin
sudo cp tree /usr/local/bin/tree
Теперь отредактируйте ваш, ~/.bash_profile
чтобы включить:
export PATH="/usr/local/bin:$PATH"
Перезагрузите оболочку, и теперь which tree
должны указать /usr/local/bin/tree
.
make
на OS X не работает. Во-первых, вы должны знать, как установить инструменты командной строки Xcode (или вообще иметь представление о сборке программного обеспечения), а затем вы обнаружите, что оно выдает ошибку на неопределенном символе. Поэтому вы должны внести некоторые изменения в make-файл (как описано здесь ). Слишком много хлопот ИМО../configure
иmake
именно делать и почему те , необходимы в первую очередь. Или они не хотят иметь дело с этим. Или прочитайте любые файлы справки, в этом отношении. Они бы предпочли сделать что-то подобноеapt-get install
. Хорошо, если вы предпочитаете установку из источника (и я лично это делаю), но вы должны признать, что есть решения, которые легче воспринимаются другими или, возможно, даже большинством обычных пользователей компьютеров../configure
и какmake
делать. Я просто знаю, что это шаги, которые мне нужно выполнить для установки программного обеспечения. Я слепо читаю файлы README и INSTALL и делаю все, что они говорят.grep
это. Нравитсяtree | grep -v 'json'
или похоже.Не совсем то же самое, но один быстрый способ на Mac:
вот и все. Он перечислит все пути к файлам в текущем каталоге в виде списка.
источник
find . -type f
find . -type d -maxdepth 2
find *
если вы не хотите видеть скрытые файлы и каталоги.tree
не показывает скрытые файлы и каталоги по умолчанию.find
инструмент 万金油.Или , если администратор не позволит вам установить любой из
brew
,fink
,port
инструменты , вы всегда можете построить его из источника:Отредактируйте Makefile, чтобы прокомментировать часть linux и раскомментировать область osx:
Необязательно: принудительный вывод цвета
И пока вы это делаете, если вы хотите, чтобы дерево всегда раскрашивало вывод, вы всегда можете отредактировать
main
методtree.c
файла и добавить егоforce_color=TRUE;
передsetLocale(LC_TYPE,"");
Наконец нажмите,
make
и вы закончили сборкуtree
для Mac.Дань идет к Шону Чепмену за его оригинальный пост в своем блоге.
источник
force_color = TRUE;
. Нет точки с запятой, и вы получите ошибку компиляции.setLocale
нееsetlocale
. Итакtree.c
, вы ищетеsetlocale(LC_TYPE,"")
; и спасибо!/bin
(или какой-нибудь путь, чтобы его можно было использовать глобально)?warning: format specifies type 'long' but the argument has type 'long long'
. Исправление было изменить спецификатор формата с%9ld
на%9lld
.Вы, вероятно, должны использовать доморощенный . Если вы делаете:
источник
Не существует формальной
tree
команды как таковой, однако вы можете сделать это:Сохраните следующий скрипт в / usr / local / bin / tree
Измените разрешения, чтобы вы могли запустить его:
Конечно, вам может понадобиться создать
/usr/local/bin
:источник
tree
, но все же миленькое решение.Альтернативное использование
find
иawk
:источник
Я нашел простое решение здесь: http://murphymac.com/tree-command-for-mac/
Таким образом , добавив следующую строку в ваш
.bashrc
,.bash_profile
или любом другом месте , сделает работу:Теперь добавление
tree
команды будет печататься так:источник
Добавим небольшую точку к ответу @ apuche для функции без корня OSX El Capitan .
make install
не удается, так как нам не разрешено писать в/usr/bin
каталог.Чтобы преодолеть это, просто отредактировать ,
Makefile
чтобы иметьprefix = /usr/local
источник
./configure --prefix=/usr/local
перед запускомmake
иmake install
и было бы достичь тех же результатов.prefix
в таких сценариях. Ноconfigure
в последней версии дерева (1.7.0) нет файла .INSTALL
Файл в распакованной директории просто говорит , чтобы использоватьmake
и движущийсяmake install
прямо вперед.Я добавил следующее в ~ / .bash_profile для использования в Terminal.app. Некоторые комментарии включены, чтобы помочь вспомнить, как используется find.
пример для текущего каталога
пример для некоторого пути
источник
Вот сценарий Ruby, который создает красивое дерево Unicode вместе с полезными метаданными.
Вы можете изменить
meta = …
строку, чтобы извлечь различные метаданные для отображения, выбирая вручную разделенные фрагменты на следующей строке. Еще немного поработав, вы можете передать произвольные аргументы ls, чтобы выбрать метаданные для отображения.Пример вывода (выглядит лучше в терминале OS X, чем шрифт в переполнении стека):
источник
Это не так красиво, как дерево gnu ... но в bash псевдоним действительно легко ... Вы даже можете добавить немного цвета, добавив опцию G в цвет ls osx.
источник
Установить Xcode
Получить инструменты командной строки
источник
Поздно к игре, но у меня был тот же вопрос. Из-за ограничений на рабочем месте я не смог установить пакет из исходного кода или через сторонний менеджер пакетов.
Это моя реализация:
Просто добавьте функцию в
/Users/foo/.profile
или.bash_profile
, а затем обновите профиль с помощью:source .profile
или:source .bash_profile
источник