Another bash scripting problem...
ZIYAD A. M. AL-BATLY
zamb at saudi.net.sa
Wed Jun 22 17:03:36 UTC 2005
On Wed, 2005-06-22 at 15:51 +0200, Markus Kolb wrote:
> ZIYAD A. M. AL-BATLY wrote on Tue, Jun 21, 2005 at 15:34:44 +0300:
> > On Mon, 2005-06-20 at 22:04 -0400, Matthew S-H wrote:
> > > <snip>
> > > It is supposed to source all of the files in a directory.
> > > However, it needs to make sure of a few things. It needs to own
> > > ~/.profile_sections, and it shouldn't recurse into sub-directories.
> > > <snip>
> >
> > find ~/.profile_sections -maxdepth 1 -type f
> > or if you want sylinks to be sourced as well:
> > find ~/.profile_sections -maxdepth 1 ! -type d
> >
> > Above will find all the files in a directory.
>
> Which has the overhead of new shell creation and additional program
> execution. I don't know why he should use any external program if it can
> be done in script as well.
>
For starter: This is the right way to do it. Using “find” for finding
file-system objects is the Right Thing. Besides, “find” will run only
once in the above script, which wont add much of a stress on the system
while “test -d $file” will run for each object in that directory, and
depending on which version of “test” will run (the “bash” built-in or
the “/bin/test” binary), it might be very huge resource drainer.
After saying all the above, the real reason I suggested the “find” way
is I wanted for him to know how great it is! I used to do the same
things before, until I started to learn about those misc. Linux
utilities. I just wanted to save the reader some time.
Anyway, thanks for sharing.
Ziyad.
More information about the ubuntu-users
mailing list