lsはディレクトリーツリー全体を探索してパイプできるファイルのリストを生成します。

lsはディレクトリーツリー全体を探索してパイプできるファイルのリストを生成します。

これに対する答えはすでにあるかもしれません。しかし、私はそれを見つけることができませんでした。

私は持っています:

directory
directory/subdirectory/subdirectoryofsubdirectory
directory/sub-subdirectory/subdirectoryofsub-subdirectory/subdirectoryofsubdirectoryofsub-subdirectory
directory/sub-sub-subdirectory
directory/sub-sub-sub-subdirectory

すべてのディレクトリとサブディレクトリにはファイルが含まれています。私はそれらをすべてリストし、リストをcatにパイプし、リストをテキストファイルにパイプしたいと思います。 「一行」でこれを行うことはできますか?その場合はご提供ください。それともスクリプトが必要ですか?では、スクリプトにどのようなコマンド/構造が必要ですか?

ベストアンサー1

最良の選択はfindコマンドだと思います。ディレクトリではなくリスト内のファイルのみを希望する場合は、次のようになります。

find directory/ -type f -print > textfile

find コマンドはファイルを再帰的にリストします。 (ディレクトリも一覧表示するには削除してください-type f)。> textfilecatなしでstdoutをtextfileというファイルにリダイレクトします。

findさまざまなオプションを備えた強力なツールです。man find出力を少し調整する必要があることを確認してください。

修正する(ありがとうございます。wxya):

欲しいならコンテンツファイルを単一のテキストファイルにマージするには、次のいずれかの方法を使用します。

find Documents/ -type f -exec cat {} + > textfile

おすすめ記事