como adiciono o comando 'tree' ao git-bash no Windows?

40

Estou usando o git-bash no Windows 7. Eu gostaria de ver uma árvore do diretório atual. No entanto:

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

OK, então não tenho o comando tree. Como faço para instalá-lo? Eu encontrei um artigo, mas foi para Macs.

    
por jcollum 09.01.2013 / 19:22

8 respostas

30

Você também pode usar "cmd //c tree" para usar o Windows ' tree

Explicação:

  • Inicie o cmd com o argumento '/ c' e execute a árvore e, em seguida, termine

/C Carries out the command specified by string and then terminates

(barra extra para escapar)

Respondido com mais detalhes aqui: link

    
por 02.06.2014 / 14:27
18

Eu baixei o tree.exe dentro do arquivo zip aqui link como sugerido.

Depois, extraí o arquivo tree.exe para C:\Program Files\Git\usr\bin (adicionei essa pasta ao caminho do windows para fazê-la funcionar com o CMD normal, mas também funciona com o GITBash).

Espero que isso ajude você de alguma forma!

    
por 02.11.2016 / 09:52
6

A versão da árvore do GnuWin32 está no link - você precisaria adicioná-la manualmente ao seu caminho se você ainda não está usando o GnuWin32.

Se você quiser usá-lo em um console do Windows, também precisará renomear ou copiar tree.exe para outra coisa, por exemplo, lstree.exe, caso contrário, o comando de árvore de compilação terá precedência. A vantagem da versão do GnuWin é que ela tem muitas opções - por exemplo, tree -L 2 limitaria a profundidade de recursão para 2.

-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.

Em comparação com a árvore incorporada:

/F   Display the names of the files in each folder.
/A   Use ASCII instead of extended characters.
    
por 08.05.2015 / 20:13
6

Já existe um comando tree no windows - apenas o problema é que o tree.com e o git bash não adicionam automaticamente a extensão .com e o executam.

No entanto, ele será encontrado se você pressionar a guia depois de digitar tree ou tre

Para ver os arquivos que você precisa usar // f - você tem que usar // ou o bash irá achar que é o nome da pasta

Eu também usei // a para mostrar as linhas ascii mas você não precisa usá-lo

Exemplo:

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$
    
por 10.04.2018 / 21:03
2

O git-bash é realmente apenas uma versão reduzida do mingw. Instale o Cygwin no cygwin.com e, em seguida, use o gerenciador de pacotes para instalar o 'tree' ou qualquer pacote em que ele esteja ou, se ele não existir, instale o gcc, faça o download da origem da árvore aqui:

link

Siga as instruções no arquivo INSTALL (make, make install)

    
por 23.07.2013 / 16:45
0

Você deve instalar o Three for Windows como mencionado acima pelo link: link

Além disso, você precisa adicionar o programa de árvore ao seu caminho do Windows ou o comando de árvore estará disponível apenas no cmd. Acesse o caminho do seu Windows e adicione isto (para instalação padrão):

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

Você poderá usar o comando tree no git bash no windows.

    
por 01.03.2016 / 15:48
0

Este é o começo do meu arquivo .gitconfig: Eu fiz um apelido para log --graph

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

Git para Windows ( link ) (possui Git Bash), mas não inclui tree . tree está disponível para o pacman (Gerenciador de pacotes), mas isso só está disponível se você instalar o "Git para Windows SDK " (vá até o final do gitforwindows.org / que fornece um link para baixe o instalador para ele em link )

Isso SO: "Gerenciamento de pacotes no git for windows?" foi muito útil link

Também como comentado no SO acima, eles apontam para este git para o problema do windows [Pacman faltando na nova versão 2.5.2 install # 397] que se destinava a não incluir pacman na instalação padrão.

De qualquer forma, eu instalei o "Git for Windows SDK", então no prompt do bash (SDK-64) eu corri o seguindo para instalar a árvore atual v1.7.0-1 (a partir desta postagem 30 de agosto de 2018):

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

No meu sistema, o Git para Windows SDK é instalado em: C:\git-sdk-64 , portanto, do meu shell Git para Windows Bash (que não tinha árvore instalada), copiei-o em tree.exe para o diretório / usr / bin , por exemplo

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

Agora, posso executar tree v1.7.0 de ambos os shells do Bits do Git.

Então, para tornar ainda mais fácil para os outros e talvez eu mesmo em uma máquina futura, olhei para onde pacman estava recebendo o pacote tree executando o seguinte no meu terminal Bash do 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
...

A principal coisa, aqui é que pacman está obtendo-o do repositório "msys" (FYI: mesmo que diga msys, ele realmente está usando msys2), então eu olhei /etc/pacman.d/mirrorlist.msys e os primeiros pontos de espelho para http://repo.msys2.org/msys/$arch/

Então, da próxima vez que você quiser um pacote que NÃO esteja no Git para Windows, você pode baixá-los em: link (para 64 bits) ou de link (32 bits)

por exemplo. link de download direto para a árvore v1.7.0-1

por 30.08.2018 / 22:54