ツリーのみの出力ファイルを作成するにはどうすればよいですか?

ツリーのみの出力ファイルを作成するにはどうすればよいですか?

tree一つある-dオプションは " List directories only."です。。ただし、「ファイルのみ一覧表示」オプションが見つからないようです。マニュアルページを見ましたが、ファイルリストのみをリストするオプションが見つからないようです。

ベストアンサー1

他の人がコメントで述べたように、ディレクトリではなくリストをリストするだけでは、コマンドの目的に正確には合いませんtree

ただし、ファイルのみが一覧表示されます。現在のディレクトリにあなたが私のようにカスタマイズを使用することを好むならばtreelsおそらくあなたが好むフラグとパラメータのエイリアスをls使うかもしれませtreeん)、これはまれではありません。

treeとの組み合わせを使用すると、必要なものをgrep得ることができます。

$ tree -F
.
├── file1.txt
├── file5.txt
├── parent_dir1/
│   ├── child_dir/
│   ├── file2.txt
│   └── file3.txt
└── parent_dir2/
    └── child_dir2/
        └── file4.txt

4 directories, 4 files
$ tree -FL 1 | grep -v /$
.
├── file1.txt
├── file5.txt

2 directories, 1 file

「F」フラグを使用すると、「/ tree」がディレクトリに追加され、「v」フラグはgrep「/」で終わるすべての行に一致する指定されたパターンを反転します。

目次は実際には表示されませんが、最後の要約もまだ適用されることがわかります。

1つ以上のレベルを下回るとツリー構造が続き、状況が少し変になります。

$ tree -FL 3 | grep -v /$
.
├── file1.txt
├── file5.txt
│   ├── file2.txt
│   └── file3.txt
        └── file4.txt

4 directories, 4 files

編集する

また、この破損したツリー出力が問題になる場合(たとえば、一部のファイルが「└─」文字の代わりに「├─」文字で始まり、マルチレベルバージョンが消えるように見える場合など)、まずこの問題を解決できます。出力ディレクトリをソートします。

$ tree --dirsfirst -FL 1 | grep -v /$
.
├── file1.txt
└── file5.txt

2 directories, 1 file
$ tree --dirsfirst -FL 3 | grep -v /$
.
│   ├── file2.txt
│   └── file3.txt
│       └── file4.txt
├── file1.txt
└── file5.txt
4 directories, 5 files

私はこれが実際にはノードレスツリー構造をより読みやすくすると思います。

おすすめ記事