Lo script inserito sotto è uno G-script e serve per visualizzare la dimensione del contenuto di una o più directory alla volta senza operare in maniera ricorsiva nelle subdirectory.
#!/bin/bash
#
# AUTHOR: Maurizio di NuvoleSparse
#
# License: GNU General Public version 2 or any later version.
# This program comes with ABSOLUTELY NO WARRANTY; for details
# see the COPYING file or visit "http://www.gnu.org/licenses/gpl.html".
# This is free software, and you are welcome to redistribute it under
# certain conditions. See the GPL license for details.
#
# Dependence:
# gtkdialog
gui(){
export MAIN_DIALOG_text='
<vbox>
<notebook labels="'$1'|Errori">
<vbox>
<edit>
<input file>/tmp/temp1</input>
<width>400</width><height>250</height>
</edit>
</vbox>
<vbox>
<edit>
<input file>/tmp/errors-dimensfiles.log</input>
<width>400</width><height>250</height>
</edit>
</vbox>
</notebook>
</vbox>
'
}
gui_text(){
export MAIN_DIALOG_text='
'$schede_text'
'$gui_text'
'$schede1_text'
'
}
echo > /tmp/temp
echo > /tmp/temp1
echo > /tmp/errors-dimensfiles.log
if [ $# -eq 0 ]; then
gui_text="<vbox><text><label>DimensFiles</label></text>\
<frame Domanda><text><label>Non hai selezionato nessuna directory,\
vuoi processare la directory '$PWD'?</label></text></frame><hbox>\
<button ok></button><button cancel></button></hbox></vbox>"
gui_text
output_gui=`/usr/bin/gtkdialog --program=MAIN_DIALOG_text`
if ! echo $output_gui | grep -q 'EXIT="Cancel"'; then
cd "$PWD"
gui_text="<vbox><text><label>DimensFiles</label>\
</text><text><label>Attendere la lettura del contenuto di '$PWD'.\
</label></text></vbox>"
gui_text
gtkdialog --program=MAIN_DIALOG_text &
PID=`pidof -s gtkdialog`
ls -A "$PWD" > /tmp/temp
num_linea=1
tot_linee_categorie=`wc -l /tmp/temp | awk '{ print $1 }'`
until [ $num_linea -gt $tot_linee_categorie ]; do
var="`sed -n "$num_linea"p /tmp/temp`"
du -sh "$PWD/$var" 2>>/tmp/errors-dimensfiles.log\
>> /tmp/temp1
num_linea=$((num_linea+1))
done
du -sch "$PWD" 2>>/tmp/errors-dimensfiles.log | sed -n 2p\
>> /tmp/temp1
kill $PID
gui "$PWD"
gtkdialog --program=MAIN_DIALOG_text
fi
else
until [ $# -eq 0 ]; do
dir="$1"
if [ -d "$dir" ]; then
gui_text="<vbox><text><label>DimensFiles</label>\
</text><text><label>Attendere la lettura del contenuto di '$dir'.\
</label></text></vbox>"
gui_text
gtkdialog --program=MAIN_DIALOG_text &
PID=`pidof -s gtkdialog`
ls -A "$dir" > /tmp/temp
echo > /tmp/temp1
num_linea=1
tot_linee_categorie=`wc -l /tmp/temp | awk '{ print $1 }'`
until [ $num_linea -gt $tot_linee_categorie ]; do
var="`sed -n "$num_linea"p /tmp/temp`"
du -sh "$dir/$var" 2>> \
/tmp/errors-dimensfiles.log >> /tmp/temp1
num_linea=$((num_linea+1))
done
du -sch "$dir" 2>>/tmp/errors-dimensfiles.log | \
sed -n 2p >> /tmp/temp1
kill $PID
gui "$dir"
gtkdialog --program=MAIN_DIALOG_text
else
gui_text="<vbox><text><label>DimensFiles</label>\
</text>
<frame Errore><text><label>'$dir' non e' una directory</label></text>\
</frame>
<hbox><button ok></button></hbox></vbox>"
gui_text
/usr/bin/gtkdialog --program=MAIN_DIALOG_text
fi
shift
done
fi
rm -f /tmp/temp
rm -f /tmp/temp1
rm -f /tmp/errors-dimensfiles.log
exit 0
Aggiornamento del 04 Novembre 2006
Approfittando della novità di gtkdialog ho provato a dargli una bello scossone.

Aggiornamento del 26 Dicembre 2006
Ora, le interfaccie grafiche dello script sono interamente in gtkdialog. Ho rimosso le istruzioni in bash ciclo+read, esempio:
cat file | while read variabile; do
<azione>
done
ed è stato sostituito con ciclo+sed, cioè preleva ogni riga con sed, in quanto la reputo una soluzione più sicura.