[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tail bug when following non-existent files and skipping lines (tail
From: |
Pádraig Brady |
Subject: |
Re: Tail bug when following non-existent files and skipping lines (tail -F -n +2) |
Date: |
Sun, 9 Jun 2019 12:52:21 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 07/06/19 21:26, Jon Hart wrote:
> I have a file that does yet exist, but when it does finally exist I want to
> skip the first line and follow the remainder of the file. tail -F -n +2
> should do this, however it does not skip the first line -- it starts
> printing at the first line.
>
> In one shell, fire up tail on a file that does not yet exist and tell it to
> start printing at the second line:
>
> $ tail -F -n +2 /tmp/does_not_exist
> tail: cannot open '/tmp/does_not_exist' for reading: No such file or
> directory
>
> In another shell, write several lines to the non-existent file:
>
> $ echo -e "line1\nline2\nline3" > /tmp/does_not_exist
>
> Now see that tail printed out all three lines rather than skipping the
> first:
>
> tail: '/tmp/does_not_exist' has appeared; following new file
> line1
> line2
> line3
>
>
> tail/coreutils 8.28
>
> I don't see anything in the help that hints at what might be happening
> here. Smells like a bug. Can anyone else confirm?
Well really -n is ignored when files are replaced.
I.E. -F will just dump the entire file when it's been detected as replaced.
Consider subsequent replacements of the file.
You wouldn't want --lines=NUM to be honored on each replacement.
Now maybe we could treat --lines=+NUM specially, and honor on each replacment,
assuming it's skipping a header or something. Though that sounds too
special case to be done by the current options at least.
cheers,
Pádraig