1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #!/bin/bash
dossierANettoyer="..."
dossierDeDestination="..."
for file in "$dossierANettoyer"/*; do
# correction 1 : il faut redonner le bon chemin au fichier de destination auquel on doit concaténer
# le contenu du fichier déplacé portant le même nom s'il existe
nameFile=$(echo $file|awk -F "/" '{print $NF}') # extraction du nom du fichier
fichierDeDestination="$dossierDeDestination/$nameFile"
# correction 2 : on commence par traiter le cas particulier (le pdf)
# test -f va également prendre en compte les fichiers pdf sinon
# et attention aux espaces de part et d'autres de l'opérateur =~
if [[ $file =~ .*\.pdf$ ]]; then
# correction 3 : suppression correcte du fichier PDF
rm -rf "$file"
elif [ -f "$fichierDeDestination" ]; then # correction 4 : on protège ses opérandes avec la syntaxe [ ou la commande test
# correction 5 : on agrège le contenu du fichier à déplacer dans le fichier de destination
cat "$file" >> "$fichierDeDestination"
# correction 6 : on oublis pas de supprimer le fichier derrière
rm -rf "$file"
else
# correction 7 : on déplace le fichier, on ne le supprime pas
mv "$file" "$dossierDeDestination"
fi
done |