help-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Sorting directories by size


From: hancooper
Subject: Sorting directories by size
Date: Tue, 24 Aug 2021 13:35:52 +0000

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, August 24, 2021 12:52 PM, Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> 
wrote:

> i guess you didnt set $dir
>
> On Tue, Aug 24, 2021, 14:12 hancooper hancooper@protonmail.com wrote:
>
> > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> > On Tuesday, August 24, 2021 3:31 AM, Kerin Millar kfm@plushkava.net
> > wrote:
> >
> > > On Tue, 24 Aug 2021 02:21:28 +0000
> > > hancooper via help-bash@gnu.org wrote:
> > >
> > > > I have a directory stored in `dir`. I want to store the names of
> > > > directories at a particular level
> > >
> > > > and sort them by size.
> > > > I have started with listing the directory names in `dlc` and computing
> > > > the total number of
> > >
> > > > directories present. But still have to sort `dlc` by size, the with
> > > > the biggest first.
> > >
> > > > My initial plan is to use a command such as `du -h | sort -h`.
> > > > daggr=( -mindepth "$depth" -maxdepth "$depth" )
> > > > dlc=$( find "$dir" "${daggr[@]}" -type d | tr "\n" " " )
> > > > ndr=$( echo "$dlc;" | grep -o " " | wc -l )
> > >
> > > The last two of these three commands should be jettisoned. Further, you
> > > ought to be using an array to store the directory names. As you appear to
> > > be using GNU, consider the following.
> > > daggr=(-mindepth "$depth" -maxdepth "$depth")
> > > mapfile -td '' dlc < <(find "$dir" "${daggr[@]}" -type d -exec du -0 {}
> >
> > -   | sort -zrn | cut -z -f2-)
> >
> > > ndr=${#dlc[@]}
> > > This relies on the fact that GNU du(1), given the -0 option, employs an
> > > output format of "%d\t%s\0", <size>, <pathname>.
> > > --
> > > Kerin Millar
> >
> > I agree with your assessment. Have seen that I get the following errer
> > find: ‘’: No such file or directory


I would like to have the capability to print the directories with their size,
in the form of a table (size dir).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]