redirecting out of a command invoked by sudo fails
jd1008 at gmail.com
Fri Jun 25 21:56:26 UTC 2010
On 06/25/2010 02:51 PM, Greg Woods was caught red-handed while writing::
> On Fri, 2010-06-25 at 12:33 -0700, JD wrote:
>> On 06/25/2010 12:04 PM, Bill Crawford was caught red-handed while writing::
>>> On 25 June 2010 19:38, JD<jd1008 at gmail.com> wrote:
>>>> cd /var/lib
>>>> sudo tar cjf - rpm> rpm.tar.bz2
>>>> sh: rpm.tar.bz2: cannot create [Permission denied]
>> sudo only runs the "tar" command; the redirect (>) is
>>> done by the shell, and since you aren't root, you can't write in
> The classic example to illustrate this is:
> $ cat a b> a
> This is supposed to append b to a, but what actually happens is that the
> redirection truncates a first, and you wind up with a copy of b in a and
> the original contents of a are lost (do not ask how I learned this; the
> answer is "the hard way" )-:
> $ cat b>> a
> is the right way to do that.
> In both of these cases, the problem is that the shell does the
> redirection first before executing the commands.
As I have already answered, let'ts not beat a dead horse.
Issue already very well explained by Bill Crawford.
No need for any followups.
More information about the users