43

我正在关注一个名为pry的红宝石宝石上的屏幕投射。在 8:10,使用了 .tree 命令,我认为这是一个 Unix 命令。

它似乎不适用于我的系统:

[24] pry(main)> .tree
\Error: there was a problem executing system command: tree

我已经将问题追溯到这里,其中 pry 引用了一个 shell 命令:

Pry::CommandSet.new do

  command(/\.(.*)/, "All text following a '.' is forwarded to the shell.", :listing => ".<shell command>") do |cmd|
    if cmd =~ /^cd\s+(.+)/i
      dest = $1
      begin
        Dir.chdir File.expand_path(dest)
      rescue Errno::ENOENT
        output.puts "No such directory: #{dest}"
      end

    else
      if !system(cmd)
        output.puts "Error: there was a problem executing system command: #{cmd}"
      end
    end
  end

从 bash 的上下文中,我尝试使用命令树但没有运气:

projects/sms(apps2)$ tree
-bash: tree: command not found
~/projects/sms(apps2)$ .tree
-bash: .tree: command not found

这看起来非常有用,我怎样才能得到这个命令?

4

5 回答 5

90

使用自制软件

brew install tree

使用macports

sudo port install tree

使用来源

遵循这些指示。(警告;您应该使用有意义的标志/等。)

<rant>所有系统都应该带有tree; 我经常使用它。我们可以将目录结构发布为文本,而不是图片。</rant>

于 2011-11-29T00:14:23.267 回答
5

对于一个简单的方法,您还可以将以下别名添加到您的~/.bashrcor~/.zshrc文件中:

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

这导致以下结果:

$ tree
.
|____.git
| |____config
| |____objects
| | |____pack
| | |____info
| |____HEAD
| |____info
| | |____exclude
| |____description
| |____hooks
| | |____commit-msg.sample
| | |____pre-rebase.sample
| | |____pre-commit.sample
| | |____applypatch-msg.sample
| | |____pre-receive.sample
| | |____prepare-commit-msg.sample
| | |____post-update.sample
| | |____pre-applypatch.sample
| | |____pre-push.sample
| | |____update.sample
| |____refs
| | |____heads
| | |____tags

在这里找到了这个解决方案:

于 2018-06-03T11:24:18.907 回答
1

brew install tree如果您在 Mac 上使用 Homebrew,请在终端上使用命令。

于 2020-11-20T14:52:12.940 回答
0

不完全相同,但使用以下命令为您提供这些目录中所有目录和文件的列表:

find .

您也可以仅指定列表目录

find -type d

或者如果您只想查看文件

find -type f

您还可以指定深度

find -type d -maxdepth 2
于 2020-06-16T11:33:39.323 回答
0

将此添加到您的 shell 启动文件(~/.bashrc~/.zshrc)中:

tree() {
    find $1 -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
}

重新启动 shell 后,您可以使用 tree 命令,如下所示:

% tree Downloads
Downloads
|____ideaIU-2020.1.3-no-jbr.tar.gz
|____Firicico.ttf
于 2020-07-14T14:51:16.063 回答