[plug] bash scripting problem

Nathan Alberti nathan at nathanalberti.com
Fri Aug 8 14:56:25 WST 2003


man du


--max-depth=N
print the total for a directory (or file, with --all) only if it
is   N   or  fewer  levels  below  the  command  line  argument;
--max-depth=0 is the same as --summarize
 



On Fri, 2003-08-08 at 14:43, David Buddrige wrote:
> Hi all, 
> 
> I am trying to write a bash script that will give me the size of each of the
> directories in a given directory.  However, I only want the size of the 
> directories that are at the first level. 
> 
> For example, 
> 
> if I have the following directories from the current: 
> 
> 
> ./fred
> ./fred/smith
> ./fred/smith/foo
> ./blog
> ./blog/oggle
> ./blog/sims
> ./dag 
> 
> Then, I want to see the size of 
> 
> ./fred
> ./blog
> ./dag 
> 
> and their respective subdirectories summed up as a single number. 
> 
> I have written this script to do this: 
> 
> <script>
> for x in `find . -type d | cut -d/ -f2 | sort -u`;
> do
> {
>    du -m $x | grep "^[0-9]" | grep "$x$";
> }
> done
> </script> 
> 
> However this script seems to give me a value for each of the subdirectories 
> as well.  Can anyone see why this is happening?    I would have thought that 
> having 'grep "$x$"' would have taken out anything that wasn't the first 
> directory only. 
> 
> thanks heaps guys 
> 
> David.
> 



More information about the plug mailing list