ツリーが最上位レベルを表示しないようにする方法はありますか?

ツリーが最上位レベルを表示しないようにする方法はありますか?

デフォルトでは、treeディスプレイは次のようになります。

$ tree
.
├── Package.resolved
├── Package.swift
├── Sources
│   └── SwiftClientSDK
│       ├── OpenAPI.yaml
│       ├── SwiftClientSDK.swift
│       └── openapi-generator-config.yaml
└── Tests
    └── SwiftClientSDKTests
        └── SwiftClientSDKTests.swift

次のようにcwdの内容を表示したいと思います。

Package.resolved
Package.swift
Sources
└── SwiftClientSDK
    ├── OpenAPI.yaml
    ├── SwiftClientSDK.swift
    └── openapi-generator-config.yaml
Tests
└── SwiftClientSDKTests
    └── SwiftClientSDKTests.swift

マニュアルページで見た内容は、これが可能であることを示唆していません。

答え1

似ていないようだ

tree -- *

近いがディレクトリタイプではないファイルについて文句を言い、ディレクトリへのシンボリックリンクに従います。

追加のインデントを削除するために、いつでも出力を後処理できます。

tree -C | sed '1d;$!s/....//'

これにより、最初の行が削除され、()最後の()行を除くdすべての行の最初の4文字が削除されます(最初の4文字をnullに置き換えます)。オプションは、出力が端末に送信されないため、色を維持することです。1s!$-Ctree

これに対する関数を作成できます。

ltree() (
  set -o pipefail
  if [ -t 1 ]; then
    set -- -C "$@"
  fi
  tree "$@" | sed '1d;$!s/....//'
)

複数のディレクトリ(たとえば)を渡すとltree dir1 dir2正しく機能しません。この場合、通常のtree出力が必要な場合があります。

関連情報