'tree' komutunu Windows'ta git-bash'a nasıl eklerim?


53

Git-bash'ı Windows 7'de kullanıyorum. Geçerli dizinin bir ağacını görmek istiyorum. Ancak:

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

Tamam, bu yüzden ağaç komutum yok. Nasıl kurarım? Bir makale buldum ama Mac'ler içindi.


git-bashgerçekten sadece Cygwin'in bir kesim sürümüdür. Gitmenin en iyi yolu, Cygwin'i cygwin.com adresinden kurmak treeve (varsa) içinde bulunduğu paketi kurmak için paket yöneticisini kullanmaktır .
allquixotic

2
@ allquixotic aslında bugünlerde bu mingw
jcollum

Yanıtlar:


35

"cmd //c tree"Windows kullanmak için de kullanabilirsiniztree

Açıklama:

  • Cmd'yi '/ c' argümanı ile başlat ve ağacı çalıştır, ardından sonlandır

/ C string tarafından belirtilen komutu yerine getirir ve sonra sonlandırır

(kaçmak için fazladan eğik çizgi)

/ Doğru görüntülememesi durumunda, ascii karakterleriyle çalışmak için.

Burada daha ayrıntılı olarak cevaplanmıştır: https://stackoverflow.com/q/515309/1261166


2
bu komutu ayrıca ~ / alias tree='cmd //c tree //a
.bashrc'nize

Bu artık işe yaramıyor. Kullanıntree.com /a
automorphic

30

Zip dosyasının içindeki tree.exe dosyasını http://gnuwin32.sourceforge.net/packages/tree.htm adresinden önerildiği gibi indirdim .

Sonra tree.exe dosyasını çıkardım C:\Program Files\Git\usr\bin(Bu klasörü normal CMD ile çalışmasını sağlamak için Windows yoluna ekledim ama GITBash ile de çalışıyor). Windows'ta ağaç komutuyla Git Bash

Umarım bu bir şekilde size yardımcı olur!


2
Windows 7'de git-bash ile çok iyi çalışıyor, teşekkürler!
cjauvin

2
tree.exe C: \ Program Files \ Git \ usr \ bin dizinine kopyalandı, aradığımız şey buydu. Büyük pay Teşekkürler. downloads.sourceforge.net/gnuwin32/tree-1.5.2.2-bin.zip tree.exe'de bulunan ikili dosyalar için belirtilen zip dosyasını indirin. Aksine orijinal siteden indirmeyi deneyin.
Doogle

1
Windows 10'da bunu koyduğumda C:\Users\myuser\AppData\Local\Programs\Git\usr\bin , kuralın bash.exe veya git.exe'nin bulunduğu yeri bulmak olduğunu düşünüyorum, bir klasöre gidin, daha sonra usr / bin / dizinini bulun ve ağacı oraya koyun
Charles L.

10

Zaten pencerelerde bir ağaç komutu var - tek sorun ağaç.

Ancak tree veya tre yazdıktan sonra sekmeye basarsanız onu bulur.

Kullanmanız gereken dosyaları görebilmek için // f - kullanmalısınız // veya bash onun klasör adı olduğunu düşünecektir.

Ben de // a, ascii çizgileri göstermek için kullandım ama kullanmak zorunda değilsin.

Örnek:

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
harika, bir cazibe gibi çalıştı ..
Santosh Kumar Arjunan

7

GnuWin32 ağacın yapısı http://gnuwin32.sourceforge.net/packages/tree.htm adresindedir - zaten GnuWin32 kullanmıyorsanız, yolunuza manuel olarak eklemeniz gerekir.

Windows konsolunda kullanmak istiyorsanız, tree.exe'yi başka bir şeye yeniden adlandırmanız veya kopyalamanız gerekir, örneğin lstree.exe, aksi halde Windows tree komutu öncelikli olur. GnuWin versiyonunun avantajı birçok seçeneğe sahip olmasıdır - örneğin özyinme tree -L 2derinliğini 2 ile sınırlar.

> 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 ağacına kıyasla:

> 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'de cmd elde etmenin en kolay yoludur ve başarısızlıktan önce derleme rotasını denedim. Bununla birlikte sadece binary'i indirirsiniz, onu cygwins yolunuzdaki ve violla'daki bir klasöre çıkartın, kutudan ağaç komutu
iloveretards

cygwin'de: apt-cyg install treeve tree.execygwin binklasöründe olacaktır.
Timo

2

git-bash gerçekten sadece mingw'in kesilmiş bir versiyonu. Cygwin'i cygwin.com adresinden yükleyin ve daha sonra 'tree' (veya ağaç) 'ı yüklemek için paket yöneticisini kullanın ya da yoksa paketi mevcutsa, gcc'yi yükleyin, ağaç kaynağını buradan indirin:

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

Ardından INSTALL dosyasındaki talimatları izleyin (make, install)


Yani minggw'de imkansız mı?
Jen S.

1
Mingw'den çok zor olmadığını ama varsayılan git-bash komutundan mümkün olmadığını düşünmüştüm, çünkü git-bash'ın C / C ++ derleyicisi gibi ihtiyacınız olan araçlarla gelmediğini hayal ediyorum. Ancak, mingw'yi kurmayı, gcc'yi içerdiğinden emin olmayı ve tree INSTALL dosyasındaki talimatları izlemeyi deneyebilirsiniz. Mingw'i bu gibi şeyleri geçmişte Windows'ta derlemek için kullandım, bu yüzden bu kısım kesinlikle mümkün.
Jonathan Hartley

1

Başka bir seçenek de MinGW paketini kullanmak olacaktır, eğer zaten MinGW kurulu ise, ağaç orada paketlenir, sadece bir MinGW terminali açıp çalıştırarak kurun pacman -Sy tree.

Eğer zaten MinGW kurulu değilse, sadece tree komutu için yüklemeniz büyük olasılıkla mümkün değildir.


0

Three for Windows programını yukarıda belirtilen şekilde yüklemelisiniz: http://gnuwin32.sourceforge.net/packages/tree.htm

Bunun yanında, ağaç programını pencereler yolunuza eklemeniz gerekir, aksi halde ağaç komutu sadece cmd'de olacaktır. Windows yolunuza erişin ve şunu ekleyin (varsayılan kurulum için):

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

Onları git komutunda pencerelerde tree komutunu kullanabileceksiniz.


0

Bu .gitconfig dosyamın başlangıcı: log --graph için bir takma ad yaptım

# 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
Çözüm değil. Diğer ad, dosyaları / dirleri değil, taahhütleri gösterir.
Timo

0

Windows için Git ( https://gitforwindows.org/ ) (Git Bash’e sahiptir), ancak içermez tree. (Paket Yöneticisi) treearacılığıyla kullanılabilir pacmanancak bu yalnızca "Git for Windows SDK " uygulamasını yüklediğinizde kullanılabilir ( https://github.com/ git-for-windows / yap-ekstra / bültenleri / sonuncusu )

Bu SO: "Windows için git paket yönetimi?" çok yardımcı oldu https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows

Ayrıca, yukarıda belirtilen SO'da yorumlandığı gibi pacman, varsayılan yüklemeye dahil edilmemesi amaçlanan [yeni 2.5.2 kurulumunda # Pacman eksik Pacman] pencereleri sorunu için bu git'e bağlanırlar .

Neyse, "Git for Windows SDK" yi kurdum, sonra bash komutunda (SDK-64) Mevcut ağacı v1.7.0-1 (bu yazı 30 Ağustos 2018'den itibaren) yüklemek için aşağıdakileri çalıştırdım:

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

Sistemimde, Windows için Git SDK'sı altında yüklenir: Bu C:\git-sdk-64nedenle, Git için Windows Bash kabuğumdan (bu ağaç yüklü değildi), tree.exe üzerinden / usr / bin dizinine kopyaladım, örn.

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

Şimdi treeher iki Git Bash kabuğundan da v1.7.0 çalıştırabilirim .

Böylece, gelecekteki bir makinede diğerleri ve belki de kendim için daha kolay hale getirmek için Git için Windows SDK Bash terminalimde çalıştırarak paketi nereden pacmanalıyordum diye baktım 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
...

Önemli olan, burada pacman"msys" deposundan (FYI: msys dediği halde, msys2 kullanıyor) olmasına rağmen /etc/pacman.d/mirrorlist.msys, ilk bakış açısını işaret ediyor.http://repo.msys2.org/msys/$arch/

Bu yüzden bir dahaki sefere Git’de Windows’ta olmayan bir paket almak istediğinizde bunları şu adresten indirebilirsiniz: http://repo.msys2.org/msys/x86_64/ (64-bit için) veya http: //repo.msys2 .org / msys / i686 / (32 bit)

örneğin ağaç v1.7.0-1 için doğrudan indirme linki


1
Bilginize: En Git SCM Pencere indirme git-scm.com/download , Windows GitHub'dan için Git (en son çeker github.com/git-for-windows/git/releases itibaren) github.com/git-for-windows/git
N. Ngo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.