lsを使ってtail -fと同じことをするにはどうすればよいですか? [コピー]

lsを使ってtail -fと同じことをするにはどうすればよいですか? [コピー]

重複の可能性:
コマンドに従うことは可能ですか(繰り返し実行)? tail -fを使ってファイルを追跡するのと同じですか?

bash画面でディレクトリにダウンロードされたファイルをリアルタイムで監視したいと思います。

tail -fLinuxでディレクトリ(おそらくlsを使って)と同じことをする簡単な方法はありますか?

答え1

"watch"コマンドを使用してください。

watch ls

これにより、2秒ごとにlsコマンドが実行されます。

答え2

watchあなたがそれを得るならば、これは確かに最善の答えです。ただし、完璧にするために、いくつかの簡単なシェルスクリプトを使用して、ほぼ同様のものをシミュレートできます。

while (true)
do
     date
     ls -lrt | tail -n 10
     sleep 2
     clear
done

別のアプローチはを使用することですdiff。これは、かつて存在していたファイルが削除されたかどうかを示します。 1つの利点は、端末を消去しないため、上にスクロールすると、すべての変更の完全な履歴を見ることができることです。欠点は、状態変更推論を管理するために2つの一時ファイルを生成することです。

ls1="/tmp/listing1.dat"
ls2="/tmp/listing2.dat"
ls -lrt > ${ls1}
ls -lrt > ${ls2}

while (true)
do
     diff ${ls1} ${ls2} | grep '[<>]'
     sleep 2
     cp ${ls2} ${ls1}
     ls -lrt > ${ls2}
done

答え3

確認するinotifywait

たとえば、フォルダを監視するには、abc次のようにします。

while inotifywait -e close_write abc; do
   # do `ls` when abc changed
   ls abc
done

関連情報