Si tengo una ruta de archivo o directorio, ¿cómo puedo enumerar todas las copias de seguridad de Time Machine de esa ruta?
Si tengo una ruta de archivo o directorio, ¿cómo puedo enumerar todas las copias de seguridad de Time Machine de esa ruta?
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
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
solo está disponible si tiene GNU coreutils instalados (por ejemplo, a través de brew). De lo contrario, use $(pwd)/FILENAME
o (si esto no funciona porque hay algunos enlaces simbólicos involucrados) especifique la ruta completa.
Lea otras preguntas en las etiquetas macos time-machine