Si tengo una ruta de archivos o directorios, ¿cómo puedo listar todas las copias de seguridad de Time Machine de esa ruta?
Respuestas
¿Demasiados anuncios?
Tina
Puntos
16
Aquí está mi intento:
#!/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
Matthew A. Flinchbaugh
Puntos
41
Suponiendo que no haya cambiado el nombre de su unidad principal de 'Macintosh HD' a otra cosa, puede ejecutar
ls -l /Volumes/Time\ Machine/Backups.backupdb/$(hostname -s)/*/Macintosh\ HD/$(realpath FILENAME)
para ver todas las versiones almacenadas en TimeMachine.
PS realpath
sólo está disponible si tiene instalado GNU coreutils (por ejemplo, a través de brew). En caso contrario, utilice $(pwd)/FILENAME
o (si esto no funciona porque hay algunos enlaces simbólicos involucrados) especificar la ruta completa en su lugar.
0 votos
¿Te das cuenta de que Time Machine utiliza enlaces duros - por lo que cada intervalo en el que ese archivo estaba presente tendrá una copia de seguridad de esa ruta? Mira los recuentos de enlaces duros y podrás ver cuántas instancias de esa versión del archivo hay en el volumen.
0 votos
@bmike: Eso es cierto. Yo no estaba realmente preocupado por las entradas duplicadas sin embargo - sólo interesado en una lista de fechas que tienen copias de seguridad, así que puedo restaurar fácilmente uno.