尾のためのlsのパイプ結果

尾のためのlsのパイプ結果

複数のログファイルを含むディレクトリがあります。このような:

data170213.log
data170214.log
data170215.log
data170216.log

最新のファイルの最後の項目を見て追跡したいと思います。最新のファイルデータ170216.log、私はこれをすることができる

tail -f data170216.log

問題は、ディレクトリ内の最新のファイルの名前が何であるかわからないことです。私はそれを識別できる

ls -1r *.log | head -1

コマンドの結果をどのように送信するかわかりません。ls -1r *.log | ls -1r *.log |ヘッド-1命じる尾 -f [ファイル]

私は成功せずに次のことを試しました。

tail -f < ls -1r *.log | head -1

ベストアンサー1

使うコマンドの置き換え:

tail -f "$(ls -1r *.log | head -n 1)"

これはls -1r *.log | head -n 1サブシェルで実行され、出力を取得して新しいコマンドを作成するために使用されます。したがって、ls出力がパイプされると、data170216.logコマンドは次のようになります。

tail -f "data170216.log"

それはあなたが望むものです。

head -n 1代わりに、後者head -1の形式は廃止されました。

おすすめ記事