#!/bin/bash

if [ $# == 1 ]; then # si le nombre de paramètres passés vaut 1
	            # alors utiliser le répertoire courant comme préfix
	            # sauf si le paramètre désigne déjà la 
                     # répertoire courant 	
     if [ "$1" != "." ]; then
        prefix="./"
     else
        prefix=""
     fi
else # si le nombre de paramètres vaut plus que 1, alors 
     # le premier paramètre sert de préfix pour l'affichage du chemin
     prefix=$1/
     shift
fi

# parcourir tous les paramètres avec shift, jusqu'à ce qu'il n'en reste plus
while [ $# != 0 ];  do

     # générer le chemin d'accès au fichier à tester
     file=${prefix}${1}

     # si le fichier est un répertoire, l'afficher et rappeler 
     # récursivement le script
     if [ -d "$file" ]; then
        echo $file
        ls -A "$file" | xargs --no-run-if-empty --null -d '\n' "$0" "$file"
     fi

     shift
done