[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18449: "cat x >> x" error even when x is empty
From: |
Leslie S Satenstein |
Subject: |
bug#18449: "cat x >> x" error even when x is empty |
Date: |
Thu, 11 Sep 2014 06:31:46 -0700 |
With my Fedora version, there is an error message (input file is output
file)
cat x >x
cat: x: input file is output file
Regards
Leslie
>________________________________
> From: Pádraig Brady <address@hidden>
>To: Vincent Lefevre <address@hidden>; address@hidden
>Sent: Thursday, September 11, 2014 9:20 AM
>Subject: bug#18449: "cat x >> x" error even when x is empty
>
>
>On 09/11/2014 02:00 PM, Vincent Lefevre wrote:
>> With coreutils 8.23 under Debian/unstable:
>>
>> ypig% : > x
>> ypig% cat x >> x
>> cat: x: input file is output file
>> ypig% POSIXLY_CORRECT=1 cat x >> x
>> cat: x: input file is output file
>>
>> while there's no reason to return an error in this case: the file
>> should just remain empty. Using the same file for input and output
>> isn't disallowed by POSIX, AFAIK.
>>
>> This may not seem really useful here, but this can potentially break
>> scripts with things like:
>>
>> cat "$foo" >> "$bar"
>>
>> where "$foo" may be the same file as "$bar" only if it is empty.
>
>I'm struggling to see that use case TBH.
>
>
>> BTW, when x isn't empty, I wonder whether an error is correct if
>> POSIXLY_CORRECT is set. The result will typically depend on the
>> implementation and possibly be non-deterministic, but POSIX doesn't
>> seem to allow an error (except FS errors, such as disk full).
>
>This is just a protection against non deterministic usage.
>I.E. if there is data in the file then it'll probably run
>until the file system is exhausted. This is what happens
>on FreeBSD BTW, though I see that Solaris has the same
>protections as GNU.
>
>I wouldn't be on for removing this protection which
>has existed from the initial GNU implementation.
>
>cheers,
>Pádraig.
>
>
>
>
>
>
>