Windowsでgit-bashに「tree」コマンドを追加するにはどうすればよいですか?


53

Windows 7でgit-bashを使用しています。現在のディレクトリのツリーを表示したいと思います。しかしながら:

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

OK、だから私はツリーコマンドを持っていません。どうすればインストールできますか?記事を見つけましたが、それはMac向けでした。


git-bashCygwinの単なる縮小版です。最良の方法は、cygwin.comからCygwinをインストールし、そこにあるパッケージマネージャーを使用して、インストールするtreeパッケージ(存在する場合)を使用することです。
-allquixotic

2
@allquixoticは実際、最近ではmingwです-jcollum
1

回答:


35

"cmd //c tree"Windowsの使用にも使用できます」tree

説明:

  • '/ c'引数を指定してcmdを起動し、ツリーを実行してから終了します

/ C stringで指定されたコマンドを実行してから終了します

(エスケープ用の余分なスラッシュ)

/ a正しく表示されない場合にアスキー文字で実行するために使用します。

ここで詳細に回答しました:https : //stackoverflow.com/q/515309/1261166


2
:また、あなたの〜/ .bashrcの別名としてこのコマンドを追加することができますalias tree='cmd //c tree //a
onlyhuman

これはもう機能しません。使用tree.com /a
自己同型

30

zipファイル内のtree.exeをhttp://gnuwin32.sourceforge.net/packages/tree.htmから推奨どおりダウンロードしました。

次に、tree.exeファイルを抽出しましたC:\Program Files\Git\usr\bin(このフォルダーをWindowsパスに追加して、通常のCMDで動作するようにしましたが、GITBashでも動作します)。 Windowsでツリーコマンドを使用したGit Bash

これがあなたの助けになることを願っています!


2
Windows 7のgit-bashで非常にうまく機能します、ありがとう!
チャウビン16

2
C:\ Program Files \ Git \ usr \ binにコピーされたtree.exeは、探していたものです。素晴らしいシェア。ありがとう。downloads.sourceforge.net/gnuwin32/tree-1.5.2.2-bin.zip tree.exeがあるバイナリに指定されたzipをダウンロードします。反対に、元のサイトからダウンロードしてみてください。
Doogle

1
窓10で私はこれを入れてC:\Users\myuser\AppData\Local\Programs\Git\usr\bin 親指のルールは、そこUSR /ビン/プットの木を見つけ、git.exe配置されている場所bash.exeまたは見つけるフォルダを上に移動することだと思うI
チャールズL.

10

Windowsにはすでにツリーコマンドがあります-唯一の問題はtree.comであり、git bashは拡張子.comを自動的に追加して実行しません。

ただし、treeまたはtreを入力した後にTabキーを押すと、検索されます

// fを使用する必要があるファイルを表示するには、//を使用する必要があります。bashは、フォルダー名であると見なします

アスキー行を表示するために// aも使用しましたが、使用する必要はありません

例:

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$

1
素晴らしい..魅力のように働いた
Santosh Kumar氏アルジュナン

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.

IMO、これはCygwinでtree cmdを取得する最も簡単な方法です。失敗する前にコンパイルルートを試しました。これであなただけの箱から出して、あなたのcygwinsパスとviolla上のフォルダにtreeコマンドを、それを抽出し、バイナリをダウンロード
iloveretards

cygwin:apt-cyg install treeおよびtree.execygwin binフォルダーにあります。
ティモ

2

git-bashは実際にはmingwの単なる縮小版です。Cygwin.comからCygwinをインストールし、パッケージマネージャーを使用して「ツリー」またはその中にあるパッケージをインストールします。存在しない場合は、gccをインストールし、ここからツリーソースをダウンロードします。

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

次に、INSTALLファイルの指示に従います(make、make install)


minggwでは不可能ですか?
ジェンS. 14年

1
私はそれがmingwからそれほど難しくないことを想像しますが、git-bashにはC / C ++コンパイラのような必要なツールが付属していないと思うので、デフォルトのgit-bashプロンプトからは不可能です。ただし、mingwをインストールし、gccを含めるようにして、ツリーのINSTALLファイルの指示に従ってください。過去にmingwを使用してこのようなものをWindowsでコンパイルしていたため、この部分は間違いなく可能です。
ジョナサンハートリー14年

1

別のオプションは、MinGWパッケージを使用することです。MinGWが既にインストールされている場合、そこにツリーがパッケージ化され、MinGWターミナルを開いて実行するだけでインストールできpacman -Sy treeます。

MinGWをまだインストールしていない場合は、おそらくtreeコマンドのためだけにインストールするのはやり過ぎです。


0

リンクで上記のようにWindows用のThreeをインストールする必要があります:http : //gnuwin32.sourceforge.net/packages/tree.htm

それに加えて、ツリーパスプログラムにツリープログラムを追加する必要があります。追加しないと、cmdでのみツリーコマンドを使用できます。Windowsパスにアクセスして、これを追加します(デフォルトのインストールの場合):

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

それらは、Windowsのgit bashでtreeコマンドを使用できるようになります。


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'

1
解決策ではありません。エイリアスは、ファイル/ディレクトリではなく、コミットを示します。
ティモ

0

Git for Windows(https://gitforwindows.org/)(Git Bashがあります)が含まれていませんtree。(パッケージマネージャー)treeを介して使用できますpacmanが、「Git for Windows SDK」をインストールした場合にのみ使用できます(gitforwindows.org/の下部にスクロールすると、https://github.com/からインストーラーをダウンロードするためのリンクが提供されます) git-for-windows / build-extra / releases / latest

このSO:「Windows用gitでのパッケージ管理?」非常に役に立ちました https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows

また、上記のSOでコメントされているように、彼らはこのgit for windowsの問題[Pacman missing on new 2.5.2 install#397]にリンクしpacmanます。

とにかく、「Git for Windows SDK」をインストールしてから、bashプロンプト(SDK-64)で次のコマンドを実行して、現在のツリーv1.7.0-1をインストールしました(2018年8月30日現在)。

[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。そのため、Git for 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、両方のGit Bashシェルからv1.7.0を実行できます。

ですから、将来のマシンで他の人や多分自分のためにもっと簡単にするために、Git for Windows SDK Bashターミナルで次のコマンドを実行しpacmanて、treeパッケージの取得元を調べました。

$ 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/

だから、あなたはWindows用のGitにないパッケージをしたい次回、あなたがからそれらをダウンロードすることができます:http://repo.msys2.org/msys/x86_64/(64ビットの場合)またはからのhttp://repo.msys2 .org / msys / i686 /(32ビット)

たとえば、ツリーv1.7.0-1の直接ダウンロードリンク


1
参考git-scm.com/downloadでのGit SCMのWindowのダウンロードは、Git for Windows GitHub(github.com/git-for-windows/git/releases)からgithub.com/git-for-windows/git
N. Ngo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.