![Как добавить команду «tree» в git-bash в Windows?](https://rvso.com/image/1346181/%D0%9A%D0%B0%D0%BA%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%83%20%C2%ABtree%C2%BB%20%D0%B2%20git-bash%20%D0%B2%20Windows%3F.png)
Я использую 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).
Надеюсь, это вам как-то поможет!
решение3
В Windows уже есть команда tree — проблема только в том, что tree.com
git 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 .
Теперь я могу запустить tree
v1.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
- 64-бит:http://repo.msys2.org/msys/x86_64/tree-1.7.0-1-x86_64.pkg.tar.xz
- илиhttps://sourceforge.net/projects/msys2/files/REPOS/MSYS2/x86_64/tree-1.7.0-1-x86_64.pkg.tar.xz
- 32-бит:http://repo.msys2.org/msys/i686/tree-1.7.0-1-i686.pkg.tar.xz
- илиhttps://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/tree-1.7.0-1-i686.pkg.tar.xz