Bonjour,
J’essaye de lister tous les fichiers contenus dans un dossier et ses sous-dossiers. Je ne peux pas utiliser la commande find pour cet exercice. J’ai codé une solution ci dessous. J’aimerais tout placer dans une seule boucle si possible, ça simplifierait le code.
Comment auriez-vous procédé ?
#!/bin/bash
MYPATH='/home/desktop/example'
function print_files()
{
cd $1
local current_dir=$1
local tab=() # Liste des dossiers contenus dans $current_dir
local n='0' # Nombre d'éléments dans tab
for file in *; do
if [ -d $file ]; then
tab[$n]=$file
let "n += 1"
elif [ -f $file ]; then
echo "$current_dir/$file"
fi
done
for i in ${tab[@]}; do
print_files "$current_dir/$i"
done
}
print_files $MYPATH
+0
-0