はじめに
勝手に環境をいじれないサーバや、treeコマンドが標準で入っていない環境(ミニマルなサーバーやDockerコンテナなど)ではディレクトリ構成をきれいに出力するのが少し面倒です。そこで、標準コマンドでtreeっぽくディレクトリ表示できる用途別のコピペ集を作ってみました。
「treeコマンドを叩いたら command not found と言われた……」 Linux標準の find と sed を組み合わせれば、同じような表示が可能です。
古い記事でよく見る定番から、実務で役立つ「ドキュメント向け」まで、用途に合わせて使い分けてください。
簡易目次
- 簡単確認(インサート形式)
- |–でツリー形式(隠しフォルダありなし)
- 罫線でツリー形式(wordなど用)
- PlantUML形式(技術資料やドキュメントならこれ)
- mermaid形式(github markdown対応)
1. 【超軽量】とにかく中身をざっくり把握したい時
sedの置換を最小限にして、ディレクトリの深さをスペースで表現するストレートなタイプです。
コピペ用コマンド
find . -not -path '*/.*' | sed 's/[^/]*\// /g'実行結果例

- ポイント: 記号を使わないので、階層が浅いときまたは、逆にフォルダ数が多いときに見やすい。サクッとコピペしておいても比較的成形しやすいです。
2.1【tree風・定番】階層表示付き(隠しファイル込み)
|-- で階層表示する場合。10年以上前から使われている、最も有名なワンライナーです。シンプルにすべての階層を表示します。
コピペ用コマンド
pwd; find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'実行結果例

- 特徴: すべてのファイル・フォルダを表示します。
- 欠点:
.gitなどの隠しフォルダもすべて出るため、プロジェクトによっては表示が長くなりすぎます。
2.2 【tree風・定番】階層表示付き(隠しファイル抜き)
.gitなど、不要な隠しファイルは表示しない版。
コピペ用コマンド
pwd;find . -not -path '*/.*' | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'実行結果例

- 特徴: 隠しファイルではないすべてのファイル・フォルダを表示します。
3. 【レポート・ドキュメント用】wordなどに張り付ける時
|-- ではなく、罫線記号(├─ や └─)を用いて表記したモダンバージョン(ctrl+shift+cなどでコピペして利用する)
コピペ用コマンド
pwd;find . -not -path '*/.*' | sed -e 's/[^-][^\/]*\// │/g' -e 's/│\([^│]*\)$/ ├── \1/'実行結果例

- 貼り付けのコツ: WordやGoogleドキュメントに貼る際は、「MS ゴシック」や「Courier New」などの等幅フォントに設定するとズレません(ずれにくい)。
- 欠点: ターミナルだとレイアウトが崩れがち
張り付けた場合は以下のような感じになる。(テキストエディタの設定によっては多少見た目が変わる可能性があります)
※以下はブログでの表示例です(MSゴシック,CSSでの再現)
コピペした場合のプレビュー
4. 【エンジニア向け】ドキュメント作成用(Mermaid / PlantUML)
設計書やGitHubのREADMEに「図」としてディレクトリ構造を載せたい場合に便利な、特殊フォーマット出力用コマンドです。
A. graph形式(GitHub / Notion / Obsidian用)
Mermaidの「graph」機能を使うと、マインドマップのような綺麗な図が描けます。
find . -maxdepth 3 -not -path '*/.*' -not -path '.' | sed 's|^\./||' | \
awk -F/ '
BEGIN { print "graph LR"; print " root[root]" }
{
parent_id = (NF == 1) ? "root" : $(NF-1);
gsub(/\./, "_", parent_id);
node_id = $NF;
gsub(/\./, "_", node_id);
if (NF == 1) {
print " root --> " node_id "[" $NF "]";
} else {
print " " parent_id " --> " node_id "[" $NF "]";
}
}'A. 出力結果例


githubでの表示プレビュー
- 貼り付け方: Markdownの中に
mermaid ...と書いて、その中に結果を貼り付けます。 - 用途: GitHubのプロジェクト紹介や、ブログで視覚的に構造を見せたい時に。
B. PlantUML形式(技術仕様書用)
共通図解ツール「PlantUML」のTree形式(Salt)で出力します。出力されたsalt形式のディレクトリ構成テキストをPlantUML Official Online Serverなどに張り付ければ、pngやsvg形式にすることができます。
echo "@startsalt"; echo "{"; echo "{T"; find . -maxdepth 3 -not -path '*/.*' | sed -E 's/[^/]*\//+/g' | sed 's/^+/ +/'; echo "}"; echo "}"; echo "@endsalt"B. 出力結果例


PlantUML Official Online Server(公式プレビューア)に張り付けSVGに変換した例
- 貼り付け方: PlantUMLのエディタに貼り付けると、ディレクトリツリーの図が生成されます。
- 用途: 本格的なシステム設計書や、複雑なフォルダ構成を整理したい時に。
永続化と保存(alias,.bashrc/.zshrc)
1回限り使う場合は、コピペで問題ないですが、何度か呼び出したいときは、.bashrcなどにalias登録しておくと便利です。登録の仕方や仕組みについては以下の記事にて説明しています。
関連記事
【alias】よく使う長いLinuxコマンドを短縮・登録する使い方【Linuxコマンド入門 Part4-1】
aliasコマンドの使い方を初心者向けに解説。長いLinuxコマンドに短い別名を付けて作業効率を上げる方法や、rmの安全設定など便利なエイリアス例も紹介します。
【.bashrc / .zshrc】Linux設定ファイルの書き方と反映方法【Linuxコマンド入門 Part4-2】
Linuxで設定したaliasが消えてしまう?原因は設定の保存方法にあります。.bashrc / .zshrc の編集方法と source コマンドで設定を永続化する方法を初心者向けに解説。
最後に
特に環境の制約がなければtreeを入れて確認するのが簡単ですが、plantUMLなどに対応させる場合、自分で書いた方が早かったりするので、コピペ集として置いておくことにしました。良しなにご活用ください。
このスニペットがお役に立ちましたら…… 本記事のコマンドやコードを自身のブログやSNSで紹介・引用される際は、ぜひ「tukumolog.com」へのリンクを添えていただけると励みになります! 詳しい引用方法やコードの利用規約については、こちらの [サイト利用・引用ガイド] をご覧ください。
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero