【mac】treeコマンドが使えない時の対処方法(-bash: tree: command not found)

プログラミング,python

treeコマンドはディレクトリの構造が簡単に確認できるので便利ですが、最初から使えるわけではありません。

記事タイトルにもなっていますが、「-bash: tree: command not found」というエラーが出ます。

$ tree
-bash: tree: command not found

brew install treeでインストールする

これを回避するためにはhomebrewでtreeをインストールする必要があります。

下記のコマンドでtreeをインストールしましょう。

$ brew install tree

brew updateを求められる場合

treeをインストールしようとするとhomebrewをアップデートするように言われることがあります。

「brew update」でアップデートできればいいですが、updateが失敗する場合もあります。

私の場合は「Error:homebrew-core is a shallow clone」というエラーが出ました。

brew updateが失敗する場合「homebrew-core is a shallow clone」

updateコマンドが失敗する場合の対処方法ですが、エラーをよく読むと対処方法が書いてあります。

「git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow」を実行しましょう。

$ brew update
Error: 
  homebrew-core is a shallow clone.
To `brew update`, first run:
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
This command may take a few minutes to run due to the large size of the repository.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!

「git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow」を実行しましょう。

$ git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
remote: Enumerating objects: 852519, done.
remote: Counting objects: 100% (852468/852468), done.
remote: Compressing objects: 100% (279480/279480), done.
remote: Total 842693 (delta 573132), reused 829774 (delta 560329), pack-reused 0
Receiving objects: 100% (842693/842693), 316.16 MiB | 24.10 MiB/s, done.
Resolving deltas: 100% (573132/573132), completed with 7996 local objects.
From https://github.com/Homebrew/homebrew-core
   92de5abc18a..e4bf624d782  master     -> origin/master

その後brew updateを実行します。

$ brew update

updateが完了したら「brew install tree」を実行しましょう。

インストールが完了したらtreeコマンドが

$ brew install tree
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
swiftplantuml
==> Updated Formulae
Updated 119 formulae.
==> New Casks
buckets                                                                   fs-uae-launcher
==> Updated Casks
Updated 135 casks.
==> Deleted Casks
globalmeet                                                                hackhands

==> Downloading https://ghcr.io/v2/homebrew/core/tree/manifests/1.8.0
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:572adeaba1ffee7fa8bcad414c8b18140c367bbc81dc2ab8fd438cbd7e4a985b
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:572adeaba1ffee7fa8bcad414c8b18140c367bbc81dc2ab8fd438cbd7e4a98
######################################################################## 100.0%
==> Pouring tree--1.8.0.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/tree/1.8.0: 8 files, 157.7KB