[...] m'a fait mettre ces fichiers dans des endroits bizarres de mon disque dur.
Notez également que certains répertoires, notamment les fichiers Internet temporaires, peuvent ne pas être facilement consultables à l'aide des outils standard. (Par exemple : L'Explorateur Windows ne montre pas vraiment le véritable contenu de son dossier Fichiers Internet temporaires). Et les fichiers Internet temporaires peuvent ne pas avoir d'extension de nom de fichier reconnaissable. Mais ces problèmes peuvent être résolus en effaçant les fichiers temporaires.
Mais si vous avez utilisé vous-même des extensions de nom de fichier non standard, Windows ne vous aidera pas à les trouver, à moins que vous n'utilisiez un utilitaire qui s'appuie sur l'examen du fichier, notamment en utilisant chiffres magiques . Ou, si vous n'êtes pas du tout sous Windows, vous ne pouvez pas vous fier aux extensions de nom de fichier pour vos recherches, car de nombreux systèmes d'exploitation n'en ont tout simplement pas besoin.
Pour rechercher en examinant le contenu du fichier, si possible en utilisant des chiffres magiques, testé sur un Mac :
#!/bin/bash
# Recurses into all subdirectories of the current folder, to determine which
# file types are present in that directory. As this takes a long time to run,
# this also stores the results for later use.
# Recurse all directories from current directory:
find . -type d | while read dirname; do
# For each directory:
# - find -type f find all regular files
# - -exec echo print the directory name and some comma separators
# - -exec file print the MIME type
# - sort group lines with similar MIME types
# - uniq -c count all unique combinations of directory and type
# - tee show result(s) on screen and append to file
#
# So, the following appends count, directory name and MIME type, like
# 41 ,./my/directory/name,image/jpg
# 3 ,./my/directory/name,image/png
# 12 ,./my/directory/name,video/x-flv
# to a comma-separated output file:
find "$dirname" -mindepth 1 -maxdepth 1 -type f \
-exec echo -n ",$dirname," \; -exec file -b --mime-type "{}" \; \
| sort | uniq -c | tee -a folders-and-types.csv
done
echo "Found the following MIME types:"
cut -d , -f 3 folders-and-types.csv | sort | uniq
echo "Found images and videos in the following subdirectories:"
grep ",image\|,video" folders-and-types.csv
Pour obtenir une liste comprenant les noms de fichiers, on pourrait filtrer les types de fichiers tout de suite, lorsqu'on est sûr des types MIME qui doivent être inclus :
find . -type d | while read dir; do
# The following appends the file path and MIME type, like
# ./my/directory/name/favicon.ico: image/x-ico; charset=binary
# ./my/directory/name/test.jpg: image/jpg
# ./my/directory/name/test.me: image/png
# ./my/directory/name/test.temp: video/x-flv
# to the output file:
find "$dir" -mindepth 1 -maxdepth 1 -type f \
-exec file --mime-type "{}" \; \
| grep ": audio\|: image\|: video" | tee -a all-media-files.txt
done
Ces deux approches sont très longues à mettre en œuvre et vous donneront une liste très longue. Mais je pense que c'est le seul moyen fiable sur les machines non-Windows, et lorsque vous utilisez des extensions de nom de fichier bizarres.
Sous Linux, quelque chose de similaire fonctionnera. Sous Windows, il faudrait utiliser quelque chose comme Cygwin ou GnuWin ou en démarrant sous Linux en utilisant un CD live .
Attention, vous pourriez également être intéressé par application/zip
et les types MIME similaires, ou même application/octet-stream
pour les types de fichiers inconnus.