Si j'ai un chemin d'accès à un fichier ou à un répertoire, comment puis-je lister toutes les sauvegardes Time Machine de ce chemin d'accès ?
Réponses
Trop de publicités?
Meisner
Points
421
Voici ma tentative :
#!/bin/bash
# list Time Machine backups of a file starting with most recent
if [ "$#" -ne 1 ]; then
echo "Usage: list_backups.sh filename"
exit
fi
filename=`realpath "$1"`
# find root volume path
for vol in /Volumes/*; do
if [ "$(readlink "$vol")" = / ]; then
root_vol=$vol
fi
done
# prepend it to input path if necessary
if [[ "$filename" != /Volumes* ]]; then
filename="$root_vol$filename"
fi
# remove /Volumes from input path
filename="${filename///Volumes}"
# loop over backups in reverse order
tmutil listbackups | tail -1000 -r |
while IFS= read -r line; do
if [ -e "$line$filename" ]; then
ls -ald "$line$filename"
else
echo "not in $line"
fi
done
nohillside
Points
82672
En supposant que vous n'avez pas changé le nom de votre disque principal de 'Macintosh HD' à quelque chose d'autre, vous pouvez lancer l'opération suivante
ls -l /Volumes/Time\ Machine/Backups.backupdb/$(hostname -s)/*/Macintosh\ HD/$(realpath FILENAME)
pour voir toutes les versions stockées dans TimeMachine.
PS realpath
n'est disponible que si vous avez installé GNU coreutils (par exemple via brew). Sinon, utilisez $(pwd)/FILENAME
ou (si cela ne fonctionne pas parce qu'il y a des liens symboliques) spécifier le chemin complet à la place.