On Fri, 30 Mar 2007, Matthew Flaschen wrote:
This isn't really at all gnewsense-specific, but...:
Can anyone explain this:
find -name "*.c" -exec basename '{}' .c \;
test
test2
find -name "*.c" -exec echo $(basename '{}' .c) \;
../test.c
../test2.c
Shouldn't they do the same thing by definition? I could have sworn the
below command used to work:
find -name "*.c" -exec mv {} $(basename '{}' .c).cpp \;
The basename command is executed and the result is placed on the
command line. What you are running is:
find -name "*.c" -exec echo {} \;
I would expect this to rename test.c test.cpp and test2.c test2.cpp .
Now it changes test.c to test.c.cpp and test2.c to test2.cpp, consistent
with the above.
Why don't you want to use a script? That's the logical way to do it.
Alternatively, if I'm way off track, how can I do this (preferably just
find and basename and without a shell script). I've been reading the
UNIX-Haters Handbook and it's starting to get to me...
--
Chris F.A. Johnson <http://cfaj.freeshell.org>
========= Do not reply to the From: address; use Reply-To: ========
Author:
Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
_______________________________________________
gNewSense-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/gnewsense-users