AVERTISSEMENT : Le code qui suit n'est pas parfait car "file" ne fait pas de différence entre les différents formats MS Office. Avec ce code, tous les fichiers MS Office seront renommés en .doc (document Word), ce qui devrait suffire pour les faire ouvrir par MS Office. J'ignore cependant s'il saura les ouvrir correctement. En tous cas, cela ne permettra pas de faire la différence par un simple coup d'oeil, il faudra nécessairement ouvrir les fichiers MS Office pour pouvoir les différencier.
find . -type f | while read fichier ; do
case $( file -ib "${fichier}" ) in
# Cas d'un fichier PDF :
'application/pdf')
mv "${fichier}" "${fichier}.pdf"
;;
# Cas d'un fichier MS Office :
'\012- application/msword')
mv "${fichier}" "${fichier}.doc"
;;
# Tu peux à loisir rajouter des types en suivant ce modèle et en regardant ce que file -i donne sur un fichier...
# Dans tous les autres cas :
*)
echo "Type de fichier non reconnu pour ${fichier}." >&2
esac
done
En revanche, sais-tu que Linux ne se base pas sur les extensions de fichiers pour déterminer leur type ? Tu peux sans problème utiliser tes fichiers sous Linux en l'état...