Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Aug 2004 13:00:27 -0400
From:      Gerard Samuel <fbsd-questions@trini0.org>
To:        Giorgos Keramidas <keramida@ceid.upatras.gr>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Renaming files using find
Message-ID:  <4134AEAB.8090805@trini0.org>
In-Reply-To: <20040831153725.GA53122@orion.daedalusnetworks.priv>
References:  <413495FD.10700@trini0.org> <20040831153725.GA53122@orion.daedalusnetworks.priv>

next in thread | previous in thread | raw e-mail | index | archive | help
Giorgos Keramidas wrote:
> On 2004-08-31 11:15, Gerard Samuel <fbsd-questions@trini0.org> wrote:
> 
>>Im trying to rename a few files with the .dist extension.
>>Im trying ->
>>hivemind# find . -name '*.dist' -exec cp {} `basename {} .dist` \;
>>
>>And Im getting ->
>>cp: ./html.php.dist and ./html.php.dist are identical (not copied).
>>cp: ./horde.php.dist and ./horde.php.dist are identical (not copied).
>>cp: ./motd.php.dist and ./motd.php.dist are identical (not copied).
>>cp: ./mime_mapping.php.dist and ./mime_mapping.php.dist are identical (not copied).
>>cp: ./prefs.php.dist and ./prefs.php.dist are identical (not copied).
>>cp: ./registry.php.dist and ./registry.php.dist are identical (not copied).
>>cp: ./lang.php.dist and ./lang.php.dist are identical (not copied).
>>cp: ./mime_drivers.php.dist and ./mime_drivers.php.dist are identical (not copied).
>>
>>What is wrong with the command that I issued.
> 
> 
> The basename command gets expanded by the shell you use *BEFORE* find
> has a change to run.
> 
> You can try playing tricks with escaping the backquotes, which is
> probably going to result very quickly in ugliness like \\\`foo\\\` or
> you can use find to "generate" a list of filenames which will be
> "processed" by the rest of the command-line to spit out the rename
> commands, and feed them to sh(1) for execution, i.e.:
> 
>     $ ls -l
>     total 0
>     -rw-rw-r--  1 keramida  wheel  - 0 Aug 31 18:33 koko.dist
>     -rw-rw-r--  1 keramida  wheel  - 0 Aug 31 18:33 lala.dist
> 
>     $ find . -name \*.dist | \
>       awk '{ printf "mv \"%s\" `basename \"%s\" .dist`\n",$0,$0; }'
> 
>     mv "./lala.dist" `basename "./lala.dist" .dist`
>     mv "./koko.dist" `basename "./koko.dist" .dist`
> 
>     $ find . -name \*.dist | \
>       awk '{ printf "mv \"%s\" `basename \"%s\" .dist`\n",$0,$0; }' | sh
> 
>     $ ls -l
>     total 0
>     -rw-rw-r--  1 keramida  wheel  - 0 Aug 31 18:33 koko
>     -rw-rw-r--  1 keramida  wheel  - 0 Aug 31 18:33 lala
> 

Thanks for the explanation...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4134AEAB.8090805>