43

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

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

ОК, поэтому у меня нет команды дерева. Как мне это установить? Я нашел статью, но она была для Mac.

9 ответов9

33

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

Объяснение:

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

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

(дополнительная косая черта для побега)

/ использование для запуска с ascii chars, если оно не отображается правильно.

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

21

Я скачал tree.exe внутри zip-файла отсюда http://gnuwin32.sourceforge.net/packages/tree.htm, как было предложено.

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

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

7

Сборка дерева GnuWin32 находится по адресу http://gnuwin32.sourceforge.net/packages/tree.htm - вам нужно добавить его в свой путь вручную, если вы еще не используете GnuWin32.

Если вы хотите использовать его на консоли Windows, вам также нужно переименовать или скопировать tree.exe во что-то другое, например, lstree.exe, в противном случае команда дерева Windows будет иметь приоритет. Преимущество версии GnuWin состоит в том, что она имеет много опций - например, tree -L 2 ограничит глубину рекурсии до 2.

> tree --help
usage: tree [-adfghilnpqrstuvxACDFNS] [-H baseHREF] [-T title ] [-L level [-R]]
        [-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes]
        [--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset]
        [--filelimit #] [<directory list>]
  -a            All files are listed.
  -d            List directories only.
  -l            Follow symbolic links like directories.
  -f            Print the full path prefix for each file.
  -i            Don't print indentation lines.
  -q            Print non-printable characters as '?'.
  -N            Print non-printable characters as is.
  -p            Print the protections for each file.
  -u            Displays file owner or UID number.
  -g            Displays file group owner or GID number.
  -s            Print the size in bytes of each file.
  -h            Print the size in a more human readable way.
  -D            Print the date of last modification.
  -F            Appends '/', '=', '*', or '|' as per ls -F.
  -v            Sort files alphanumerically by version.
  -r            Sort files in reverse alphanumeric order.
  -t            Sort files by last modification time.
  -x            Stay on current filesystem only.
  -L level      Descend only level directories deep.
  -A            Print ANSI lines graphic indentation lines.
  -S            Print with ASCII graphics indentation lines.
  -n            Turn colorization off always (-C overrides).
  -C            Turn colorization on always.
  -P pattern    List only those files that match the pattern given.
  -I pattern    Do not list files that match the given pattern.
  -H baseHREF   Prints out HTML format with baseHREF as top directory.
  -T string     Replace the default HTML title and H1 header with string.
  -R            Rerun tree when max dir level reached.
  -o file       Output to file instead of stdout.
  --inodes      Print inode number of each file.
  --device      Print device ID number to which each file belongs.
  --noreport    Turn off file/directory count at end of tree listing.
  --nolinks     Turn off hyperlinks in HTML output.
  --dirsfirst   List directories before files.
  --charset X   Use charset X for HTML and indentation line output.
  --filelimit # Do not descend dirs with more than # files in them.

По сравнению с деревом Windows:

> tree /?
Graphically displays the folder structure of a drive or path.

TREE [drive:][path] [/F] [/A]

   /F   Display the names of the files in each folder.
   /A   Use ASCII instead of extended characters.
7

В Windows уже есть команда дерева - единственная проблема - это 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$
2

Git-Bash действительно просто урезанная версия Mingw. Установите Cygwin с сайта cygwin.com, а затем либо с помощью диспетчера пакетов установите «дерево», либо какой-либо пакет, в котором он находится, или, если он не существует, установите gcc, скачайте исходный код дерева отсюда:

http://mama.indstate.edu/users/ice/tree/

Затем следуйте инструкциям в файле INSTALL (make, make install)

0

Другой вариант - использовать пакет MinGW, если у вас уже установлен MinGW, там упаковано дерево, просто установите его, открыв терминал MinGW и запустив pacman -Sy tree .

Если у вас еще не установлен MinGW, возможно, его просто излишне устанавливать только для команды дерева.

0

Git для Windows (https://gitforwindows.org/) (есть Git Bash), но он не включает в себя tree . tree доступно для через pacman (Диспетчер пакетов), но доступно только в том случае, если вы устанавливаете «Git для Windows SDK » (прокрутите вниз до gitforwindows.org/, где есть ссылка для загрузки установщика для него с https://github. com/git-for-windows/build-extra/release /latest)

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

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

В любом случае, я установил "Git для 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 для Windows SDK установлен в: C:\git-sdk-64 , поэтому из оболочки Git для Windows Bash (у которой не было установленного дерева) я скопировал его поверх 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 , запустив в моем терминале Git для Windows SDK Bash:

$ 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-разрядная версия )

Например, прямая ссылка для загрузки дерева v1.7.0-1

0

Это начало моего файла .gitconfig: я создал псевдоним для log --graph

# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
    name = xxxxxx
    email = xxx@xxx.xxx 
[alias]
    tree = log --graph --oneline --all --pretty=format:'%C(yellow)%h%Creset -%Cred%d%Creset %s %Cgreen%cr%Creset %C(cyan)%an%Creset %gn'
0

Вы должны установить Three for Windows, как указано выше по ссылке: http://gnuwin32.sourceforge.net/packages/tree.htm

Кроме того, вам нужно добавить программу дерева в путь к Windows, иначе команда дерева будет доступна только в cmd. Получите доступ к пути Windows и добавьте это (для установки по умолчанию):

;C:\Program Files (x86)\GnuWin32\bin

Их вы сможете использовать командой tree на git bash на windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .