#!/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