Как добавить команду «tree» в git-bash в Windows?

Как добавить команду «tree» в git-bash в Windows?

Я использую git-bash в Windows 7. Я хотел бы увидеть дерево текущего каталога. Однако

jcollum@DEVELOPER01 ~/Dev/express_coffee            
$ tree .                                            
sh.exe": tree: command not found

Хорошо, у меня нет treeкоманды. Как ее установить? Я нашел статью, но она была для macOS.

решение1

Вы также можете "cmd //c tree"использовать Windowstree

Объяснение:

  • Запустите cmd с аргументом '/c' и запустите tree, затем завершите работу

/C Выполняет команду, указанную строкой, а затем завершает работу

(дополнительный слэш для выхода)

/a используется для запуска с символами ASCII в случае, если они отображаются неправильно.

Более подробный ответ здесь:https://stackoverflow.com/q/515309/1261166

решение2

Я скачал tree.exe из zip-файла отсюдаhttp://gnuwin32.sourceforge.net/packages/tree.htmкак и предлагалось.

Затем я извлек файл tree.exe C:\Program Files\Git\usr\bin(я добавил эту папку в путь Windows, чтобы он работал с обычным CMD, но он работает и с GITBash). Git Bash с командой tree в Windows

Надеюсь, это вам как-то поможет!

решение3

В Windows уже есть команда tree — проблема только в том, что tree.comgit bash не добавит расширение .comи не выполнит ее автоматически.

Однако он найдет его, если вы нажмете tabпосле ввода текстадеревоилитре

Чтобы увидеть файлы, вам нужно использовать //f— вам нужно использовать //или bash подумает, что это имя папки

Я также использовал //aотображение строк ascii, но вам не обязательно это использовать.

Пример:

dean@dean:~/java$ tree
bash: tree: command not found

dean@dean:~/java$ tree.com //a
Folder PATH listing for volume c
Volume serial number is 4E70-B37A
C:.
+---atom
+---sublime
\---vscode

dean@dean:~/java$ tree.com //a //f
Folder PATH listing for volume c
Volume serial number is 4E70-B37A
C:.
+---atom
|       test1
|
+---sublime
|       test2
|
\---vscode
        test3

dean@dean:~/java$

решение4

Git для Windows (https://gitforwindows.org/) (имеет Git Bash), но не включает tree. treeдоступен через pacman(Менеджер пакетов), но он доступен только если вы установите "Git для WindowsSDK" (прокрутите страницу gitforwindows.org/ до конца, где вы найдете ссылку для загрузки установщика с сайтаhttps://github.com/git-for-windows/build-extra/releases/latest)

Этот SO: «Управление пакетами в git для Windows?» был очень полезен https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows

Также, как прокомментировано в SO выше, они ссылаются на эту проблему git для Windows [Pacman отсутствует в новой установке 2.5.2 #397], которую не планировалось включать pacmanв установку по умолчанию.

В любом случае, я установил «Git for Windows SDK», затем в его командной строке bash (SDK-64) я запустил следующее, чтобы установить текущее дерево v1.7.0-1 (на момент публикации этой статьи 30 августа 2018 г.):

[SDK-64: Bash Terminal for Git for Windows SDK]
pacman -S tree
...
Proceed with installation? [Y/n] Y

В моей системе Git for Windows SDK установлен в: C:\git-sdk-64, поэтому из моей оболочки Bash Git for Windows (в которой не установлено дерево) я скопировал его через tree.exe в каталог /usr/bin, например

[MINGW64: Bash Terminal for Git for Windows]
cd /usr/bin
cp /c/git-sdk-64/usr/bin/tree.exe .

Теперь я могу запустить treev1.7.0 из обеих оболочек Git Bash.

Итак, чтобы сделать этот процесс еще проще для других и, возможно, для себя на будущей машине, я посмотрел, откуда pacmanберется treeпакет, выполнив следующее в терминале Bash Git for Windows SDK:

$ pacman -S --info tree
Repository      : msys
Name            : tree
Version         : 1.7.0-1
Description     : A directory listing program displaying a depth indented list of files
Architecture    : x86_64
...

Главное, что он pacmanзагружается из репозитория "msys" (к вашему сведению: хотя там и написано msys, на самом деле используется msys2), поэтому я посмотрел, /etc/pacman.d/mirrorlist.msysи первое зеркало указывает наhttp://repo.msys2.org/msys/$arch/

Так что в следующий раз, когда вам понадобится пакет, которого НЕТ в Git для Windows, вы можете загрузить его отсюда:http://repo.msys2.org/msys/x86_64/(для 64-битной) или изhttp://repo.msys2.org/msys/i686/(32-бит)

например, прямая ссылка на скачивание tree v1.7.0-1

Связанный контент