tarとtreeコマンドのためのパイプ?

tarとtreeコマンドのためのパイプ?

大容量圧縮ファイル(特に2番目のレベルディレクトリ)のツリーを表示したいので、次のコマンドを使用しました。 tar -tf tarfile | tree -L 2

しかし、圧縮ファイルのツリーではなく、私がいるディレクトリのツリーが出力されます。他のコマンドはうまく動作します。たとえば、これにより tar -tf tarfile | less tarファイルを正しく参照できます。

tree私が何か間違っているのでしょうか?それとも、他のコマンドのようにパイピングを通じて使用できないのでしょうか?そうでない場合は、圧縮ファイルの2次ディレクトリにあるファイルのみを表示する別の方法がありますか?

ベストアンサー1

tree標準入力のファイルリストを引数として受け入れることができます--fromfile

ファイルシステムではなく、ファイルからディレクトリのリストを読みます。コマンドラインで指定されたパスは、検索するディレクトリではなく読み取るファイルです。ドット(.)ディレクトリは、ツリーが標準入力からパスを読み取る必要があることを示します。

したがって、次のことを試すことができます。

tar -tf tarfile | tree --fromfile .

しかし、残念ながら、-Lこの主張は、少なくとも私のコンピュータで標準入力を読むときには機能しません。

おすすめ記事