2

この質問をどのように分類するかは完全にはわかりません。tailおよび/またはでバグを発見したように感じますbashが、明らかにこれは私の理解のバグである可能性がはるかに高いです!

次のコマンドを実行しました。

tail -f -n`wc -l scrape.log` scrape.log

catファイル全体と追加された新しい素材のために。ただし、これtailによりファイルが2回編集されました。このコマンドの実行:

tail -f -n`wc -l scrape.log`

tailファイルを1回実行して、目的の結果が得られました。バックティックは、次のコマンドを実行する前にコマンドを「前処理」するためのBashエスケープツールだと思いました。ここで何が起こっているのですか?

4

3 に答える 3

9

バックティックを使用する場合、基本的に1つのコマンドの出力を別のコマンドに渡します。では、何をするのか見てみましょうwc -l

[cnicutar@fresh ~]$ wc -l /etc/passwd
11 /etc/passwd

行数とファイル名を出力します。したがって、コマンドは次のようになります。

tail -f -n 11 scrape.log scrape.log
于 2012-08-07T18:51:37.163 に答える
4

あなたtailがそれをサポートしているなら、あなたはそれを使うことができます

tail -f -n +1 scrape.log

ファイルの1行目から始めtailます。

(私は意図的にあなたの質問に答えていません。これはcnicutarがすでに行っています。私は可能な代替案を提示しているだけです。)

于 2012-08-07T19:04:38.313 に答える
1

代替ソリューション

tail -f -n $(wc -l < scrape.log) scrape.log

入力リダイレクトは、ファイル名の出力を防ぎます。

于 2012-08-07T20:20:53.707 に答える