Script Bash

Voici un petit script pour l'intrepréteur de commandes Bash qui permet de reconstituer graphiquement l'arborescence d'un dossier (ici, le dossier courant).

# /bin/sh

c=0
d=0

function liste() { # fonction construisant (graphiquement) l'arborescence d'un dossier

	for var in $1/*
	do
		if test -f "$var" # affichage des fichiers
			then c=$[$c+1] # compteur de fichiers
			nombre=1

			while test $nombre -le $2 # création de l'espace necessaire à l'indentation
			do
				echo -n '	'
				nombre=$[$nombre+1]
			done
			
			echo -n ' - ' ; 
			echo -n `ls -l "$var" | cut -d' ' -f1`" " # affichage des droits du fichier
			echo -n "("`ls -l "$var" | cut -d' ' -f6` "octets) " # affichage de la taille du fichier
			echo -n "$var" | cut -d'/' -f$[$2+2]
		fi
	done

	for var in $1/*
	do
		if test -d "$var" # affichage des dossiers
			then d=$[$d+1] # compteur de dossiers
			nombre=1

			while test $nombre -le $2 # création de l'espace necessaire à l'indentation
			do
				echo -n '	'
				nombre=$[$nombre+1]
			done

			echo -n ' +  '; echo  $var | cut -d'/' -f$[$2+2] ; liste "$var" $[$2+1] # affichage des fichiers/dossiers présents dans chaque dossier
		fi
	done
}

liste . 0

echo ''
echo $c ' fichiers'
echo $d ' dossiers'
echo "La taille totale de ces fichiers est de "`du -sh`