web-dev-qa-db-ja.com

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

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

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

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

54
jcollum

"cmd //c tree"を使用してWindowsを使用することもできますtree

説明:

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

/ C文字列で指定されたコマンドを実行して終了します

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

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

ここでより詳細に回答: https://stackoverflow.com/q/515309/1261166

38
Viktor Mellgren

ここから、Zipファイル内のtree.exeをダウンロードしました http://gnuwin32.sourceforge.net/packages/tree.htm お勧めします。

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

これが何とかお役に立てば幸いです。

33
Pini Cheyni

ウィンドウにはすでにtreeコマンドがあります-唯一の問題は、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$
14
blur

ツリーのGnuWin32ビルドは http://gnuwin32.sourceforge.net/packages/tree.htm にあります。まだGnuWin32を使用していない場合は、手動でパスに追加する必要があります。

Windowsコンソールで使用する場合は、tree.exeの名前を変更するか、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.
8
Brian Burns

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

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

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

2

別のオプションは、MinGWパッケージを使用することです。すでにMinGWがインストールされている場合は、ツリーがそこにパッケージ化され、MinGW端末を開いてpacman -Sy tree

MinGWをまだインストールしていない場合は、treeコマンドだけでインストールするのはやり過ぎでしょう。

1
snaut

Git for Windows( https://gitforwindows.org/ )(Git Bashを持っています)しかし、treeは含まれていません。 treepacman(パッケージマネージャ)から利用できますが、「Git for Windows[〜#〜] sdk [〜# 〜] "(gitforwindows.org/の下部までスクロールすると、そのインストーラーをダウンロードするためのリンクが https://github.com/git-for-windows/ build-extra/releases/latest

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

また、上記のSOでコメントされているように、デフォルトのインストールにpacmanを含めないように意図されていた、このgit for Windowsの問題[Pacman行方不明2.5.2インストール#397]にリンクしています。

とにかく、「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 Shell(ツリーがインストールされていなかった)から、tree.exeを介して/ usr/binディレクトリにコピーしました。例えば.

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

これで、両方のGit Bashシェルからtree v1.7.0を実行できます。

したがって、他の人やおそらく将来のマシンでさらに簡単にするために、Git for Windows SDK Bashターミナルで次のコマンドを実行して、pacmantreeパッケージを取得している場所を確認しました。

$ 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」リポジトリから取得していることです(FYI:msysと表示されていても、実際にはmsys2を使用しています)。したがって、/etc/pacman.d/mirrorlist.msysと最初のミラーはhttp://repo.msys2.org/msys/$Arch/を指します

したがって、次にGit for Windowsに含まれていないパッケージが必要になった場合は、次の場所からダウンロードできます。 http://repo.msys2.org/msys/x86_64/ (64ビット用)または http://repo.msys2.org/msys/i686/ (32ビット)

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

0
N. Ngo

これが私の.gitconfigファイルの始まりです: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

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

その上、あなたはあなたのウィンドウズパスにツリープログラムを追加する必要があります、そうでなければツリーコマンドはcmdでのみ利用可能になります。 Windowsパスにアクセスし、これを追加します(デフォルトのインストールの場合):

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

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

0