デフォルトでは、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に置き換えます)。オプションは、出力が端末に送信されないため、色を維持することです。1
s
!
$
-C
tree
これに対する関数を作成できます。
ltree() (
set -o pipefail
if [ -t 1 ]; then
set -- -C "$@"
fi
tree "$@" | sed '1d;$!s/....//'
)
複数のディレクトリ(たとえば)を渡すとltree dir1 dir2
正しく機能しません。この場合、通常のtree
出力が必要な場合があります。