[nflug] file name extensions
Mark T. Valites
mark-nflug at valites.net
Thu Nov 16 17:12:45 EST 2006
On Thu, 16 Nov 2006, Robert Meyer wrote:
> Not necessarily so. I made that as a general case. There are a zillion
> ways to get a list of files into that command. The implementation was
> left as an exercise for the reader :-)
>
> Hmmm.. OK, guys. How many ways are there to do this in Unix? I'll bet
> we can come up with at least five or six. Take into account the fact
> that there could be spaces in the files and we want to traverse a
> directory, recurively. You're allowed to use any shell you want,
> including perl. Points awarded for snarky, weird or just plain bizarre
> methods. It has to work properly.
>
> Here is my contribution:
> #!/bin/bash
> for name in `find $1 -type f`; do
> mv "$name" "${name}.sxw"
> done
No, the example above would be the perfect example for useless use of a
for loop, regardless of how "generic" it was designed or how well it
"recurively" traversed a directory. The for loop needlessly iterates over
a list generated by find when find could do everything needed in one shot.
It also could potentially suffer from a limit of the length of command the
shell can handle.
A simpler solution that explicitly lists the source and destination files
names would be:
$ find /path -type f -exec mv {} {}.sxw \;
Better yet:
$ find /path -type f -exec mv {}{,.sxw} \;
_______________________________________________
nflug mailing list
nflug at nflug.org
http://www.nflug.org/mailman/listinfo/nflug
More information about the nflug
mailing list