web-dev-qa-db-fra.com

Comment puis-je ajouter la commande 'tree' à git-bash sous Windows?

J'utilise git-bash sous Windows 7. J'aimerais voir une arborescence du répertoire actuel. Toutefois:

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

OK, alors je n'ai pas la commande d'arborescence. Comment puis-je l'installer? J'ai trouvé un article mais c'était pour Mac.

49
jcollum

Vous pouvez également utiliser "cmd //c tree" pour utiliser la tree de Windows.

Explication:

  • Lancez cmd avec l'argument '/ c' et lancez tree, puis terminez

/ C Exécute la commande spécifiée par string puis se termine

(barre oblique supplémentaire pour s'échapper)

/ Une utilisation de courir avec des caractères ascii au cas où il ne s’affiche pas correctement.

Répondu plus en détail ici: https://stackoverflow.com/q/515309/1261166

33
Viktor Mellgren

J'ai téléchargé le tree.exe à l'intérieur du fichier Zip à partir d'ici http://gnuwin32.sourceforge.net/packages/tree.htm comme suggéré.

Ensuite, j'ai extrait le fichier tree.exe dans C:\Program Files\Git\usr\bin (j'ai ajouté ce dossier au chemin Windows pour le faire fonctionner avec le CMD standard, mais cela fonctionne également avec GITBash). Git Bash with tree command on windows

J'espère que cela vous aide en quelque sorte!

27
Pini Cheyni

Il y a déjà une commande tree dans Windows - le seul problème est tree.com et git bash n'ajoutera pas automatiquement l'extension .com et ne l'exécutera pas.

Cependant, il le trouvera si vous appuyez sur tab après avoir tapé tree ou tre

Pour voir les fichiers, vous devez utiliser // f - vous devez utiliser // ou bash pensera que c'est le nom du dossier

J'ai aussi utilisé // a pour afficher les lignes ASCII mais vous n'êtes pas obligé de l'utiliser

Exemple:

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$
8
blur

La construction de l’arbre sous GnuWin32 se trouve à http://gnuwin32.sourceforge.net/packages/tree.htm - vous devez l’ajouter à votre chemin manuellement si vous n’utilisez pas déjà GnuWin32.

Si vous souhaitez l’utiliser sur une console Windows, vous devez également renommer ou copier tree.exe, par exemple. lstree.exe, sinon la commande de l'arborescence de Windows sera prioritaire. L’avantage de la version de GnuWin est qu’elle offre de nombreuses options - par exemple. tree -L 2 limiterait la profondeur de récursivité à 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.

Par rapport à l'arborescence 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
Brian Burns

git-bash est vraiment juste une version réduite de mingw. Installez Cygwin depuis cygwin.com, puis utilisez le gestionnaire de paquets pour installer 'tree' ou le paquet dans lequel il se trouve, ou s'il n'existe pas, installez gcc, téléchargez le code source de l'arborescence à partir d'ici:

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

Suivez ensuite les instructions du fichier INSTALL (make, make install)

2
Jonathan Hartley

Une autre option serait d’utiliser le paquet MinGW; si vous avez déjà installé MinGW, l’arbre y est emballé, il suffit de l’installer en ouvrant un terminal MinGW et en exécutant pacman -Sy tree.

Si vous n'avez pas déjà installé MinGW, il est probablement excessif de l'installer uniquement pour la commande tree.

0
snaut

Git pour Windows ( https://gitforwindows.org/ ) (contient Git Bash) mais n'inclut pas tree. tree est disponible via pacman (gestionnaire de paquets), mais uniquement si vous installez "Git pour Windows SDK" (faites défiler vers le bas de gitforwindows.org/ qui fournit un lien pour télécharger l'installateur depuis https://github.com/git-for-windows/build-extra/releases/latest )

This SO: "Gestion des paquets dans git pour Windows?" était très utile https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows

En outre, comme indiqué dans le responsable de la sécurité ci-dessus, le lien vers ce problème git pour Windows [Pacman manquant dans la nouvelle version d'installation 2.5.2 # 397] était censé ne pas inclure pacman dans l'installation par défaut.

Quoi qu'il en soit, j'ai installé "Git pour Windows SDK", puis dans l'invite bash (SDK-64), j'ai exécuté ce qui suit pour installer l'arborescence actuelle v1.7.0-1 (à compter de cette publication le 30 août 2018):

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

Sur mon système, le Kit de développement logiciel (SDK) Git pour Windows est installé sous: C:\git-sdk-64. Ainsi, depuis mon shell Bash pour Git pour Windows (aucune arborescence n’a été installée), je l’ai copié sur tree.exe dans son répertoire/usr/bin, par exemple.

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

Je peux maintenant exécuter tree v1.7.0 à partir des deux shells Git Bash.

Donc, pour rendre la tâche encore plus facile aux autres et peut-être à moi-même sur une future machine, j’ai cherché à savoir où pacman obtenait le paquet tree en exécutant la procédure suivante sur mon terminal 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
...

L’essentiel, c’est que pacman l’obtienne du référentiel "msys" (FYI: bien qu’il indique msys, il utilise réellement msys2). J’ai donc regardé /etc/pacman.d/mirrorlist.msys et le premier miroir renvoie à http://repo.msys2.org/msys/$Arch/

Donc, la prochaine fois que vous voudrez un paquet qui n'est PAS dans Git pour Windows, vous pouvez le télécharger à partir de: http://repo.msys2.org/msys/x86_64/ (pour 64 bits) ou depuis http://repo.msys2.org/msys/i686/ (32 bits)

par exemple. lien de téléchargement direct pour l'arbre v1.7.0-1

0
N. Ngo

C’est le début de mon fichier .gitconfig: j’ai créé un alias pour 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'
0
Delphine

Vous devez installer le Three pour Windows comme indiqué ci-dessus par le lien: http://gnuwin32.sourceforge.net/packages/tree.htm

En outre, vous devez ajouter le programme d'arborescence à votre chemin Windows ou la commande d'arborescence ne sera disponible que sur cmd. Accédez à votre chemin Windows et ajoutez ceci (pour l'installation par défaut):

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

Eux, vous pourrez utiliser la commande tree sur git bash sur windows.

0