Linux:ディレクトリツリーで* .logファイルを見つけ、各ファイルに最後の10行を書き込みます。

Linux:ディレクトリツリーで* .logファイルを見つけ、各ファイルに最後の10行を書き込みます。

/ varディレクトリとすべてのツリーディレクトリで.logで終わるすべてのファイルを見つけ、各* .logファイルの最後の10行を作成する必要があります。


cd /var sudo find -name '*.log' -print


このコマンドを使用すると、これらのファイルを見つけることができます。私が見るもの:印刷ラインを ./log/auth.log ./log/Xorg.0.log .... ./log/apt/term.log .log/alternatives.log 使用しようとしていますが、 for var in sudo find -name '*.log'; do tail -n 10 $var; doneエラーが発生します。それでは、ファイルを見つけて行を印刷するにはどのコマンドを使用する必要がありますか?

答え1

この試み:

find /var -name "*.log" -type f -exec tail '{}' +

説明する:

-type f- ファイルのみ検索

-exec <command> {} +- コマンドを実行します。詳しくは man find をご覧ください。

または:

for i in $(find /var -name "*.log" -type f); do echo $i; tail $i; done

同じ出力が得られますが、フォーマットが若干異なります。

関連情報