slh*_*hck 525
您也可以tree
在 macOS 上获取该命令。如果你有Homebrew:
brew install tree
Run Code Online (Sandbox Code Playgroud)
如果您没有安装 Homebrew,请尝试以下一种方法。
按照这些网站上的说明安装Homebrew、MacPorts或Fink。不要同时安装多个包管理器!
按照您安装的任何提示进行操作。
对于自制: brew install tree
对于 MacPort: sudo port install tree
对于芬克: fink install tree
通过运行安装 Xcode 命令行工具xcode-select --install
。
更改 Makefile 以使其正常工作,这也在下面@apuche 的回答中进行了解释。注释掉 Linux 选项并取消注释 macOS 选项就足够了。
然后,运行./configure
,然后make
。
现在,您必须将tree
二进制文件移动到可执行路径中的某个位置。例如:
sudo mkdir -p /usr/local/bin
sudo cp tree /usr/local/bin/tree
Run Code Online (Sandbox Code Playgroud)
现在编辑~/.bash_profile
以包括:
export PATH="/usr/local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
重新加载 shell,现在which tree
应该指向/usr/local/bin/tree
.
non*_*ity 45
不完全相同,但 Mac 上的一种快速方法是:
find .
Run Code Online (Sandbox Code Playgroud)
就是这样。它将以列表形式列出当前目录中的所有文件路径。
小智 26
或者,如果您的管理员不允许您安装任何brew
, fink
,port
工具,您始终可以从源代码构建它:
curl -O ftp://mama.indstate.edu/linux/tree/tree-1.5.3.tgz
tar xzvf tree-1.5.3.tgz
cd tree-1.5.3/
ls -al
Run Code Online (Sandbox Code Playgroud)
编辑 Makefile 以注释 linux 部分并取消注释 osx 区域:
# Linux defaults:
#CFLAGS=-ggdb -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
#CFLAGS=-O2 -Wall -fomit-frame-pointer -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
#LDFLAGS=-s
# Uncomment for OS X:
CC=cc
CFLAGS=-O2 -Wall -fomit-frame-pointer -no-cpp-precomp
LDFLAGS=
XOBJS=strverscmp.o
Run Code Online (Sandbox Code Playgroud)
当你在做的时候,如果你想强制树总是为输出着色,你总是可以编辑文件的main
方法tree.c
并在force_color=TRUE;
之前添加setLocale(LC_TYPE,"");
最后点击make
,你就完成tree
了 mac 的构建。
向肖恩·查普曼( Shaun Chapman)致敬,感谢他在博客上发表的原创文章。
Ahm*_*sud 20
tree
本身没有正式的命令,但是您可以这样做:
将以下脚本保存到 /usr/local/bin/tree
#!/bin/bash
SEDMAGIC='s;[^/]*/;|____;g;s;____|; |;g'
if [ "$#" -gt 0 ] ; then
dirlist="$@"
else
dirlist="."
fi
for x in $dirlist; do
find "$x" -print | sed -e "$SEDMAGIC"
done
Run Code Online (Sandbox Code Playgroud)
更改权限以便您可以运行它:
chmod 755 /usr/local/bin/tree
Run Code Online (Sandbox Code Playgroud)
当然,您可能必须创建/usr/local/bin
:
sudo mkdir -p /usr/local/bin/tree
Run Code Online (Sandbox Code Playgroud)
使用find
和的替代方法awk
:
#!/bin/bash
find . -print 2>/dev/null | awk '!/\.$/ { \
for (i=1; i<NF; i++) { \
printf("%4s", "|") \
} \
print "-- "$NF \
}' FS='/'
Run Code Online (Sandbox Code Playgroud)
小智 6
我在这里找到了一个简单的解决方案:http : //murphymac.com/tree-command-for-mac/
因此,将以下内容添加到您的.bashrc
,.bash_profile
或任何其他地方将使其工作:
alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
Run Code Online (Sandbox Code Playgroud)
现在添加一个tree
命令将打印如下:
# ~/my-html-app [13:03:45]$ tree
.
|____app.js
|____css
| |____main.css
| |____theme.css
|____index.html
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
256840 次 |
最近记录: |