Copia de seguridad de solo archivos reales en la estructura de directorios

0

Quiero hacer una copia de seguridad de mis juegos guardados:

+ /Library/Containers/com.doublefine.dfaosx/***
+ /Library/Containers/com.doublefine.dottosx/***

Inicialmente quería hacer esto como parte de una copia de seguridad rsync más grande. Sin embargo, debido a cierta locura de macOS sandbox, las carpetas incluyen docenas de enlaces simbólicos de los que no quiero hacer una copia de seguridad, y la exclusión de estos ha resultado difícil con rsync (consulte pregunta relacionada ).

¿Cómo puedo hacer una copia de seguridad solo de los valiosos archivos de partidas guardadas y excluir los enlaces simbólicos, sin especificar explícitamente muchas subcarpetas? Quiero especificar "Copia de seguridad de todos los archivos reales en esta carpeta raíz, excluyendo enlaces simbólicos y subcarpetas que en última instancia no contienen un archivo real".

También probé zip , pero parece que ni siquiera tiene una opción para excluir enlaces simbólicos. ¿Puede tar hacerlo? Sería mejor si rsync puede hacerlo, pero si no, cualquier herramienta estándar de Unix sería aceptable.

Los archivos que quiero respaldar son los siguientes. Por supuesto, podría especificarlos explícitamente, pero quiero aprender a hacer una copia de seguridad de archivos reales e ignorar los enlaces simbólicos sin ser específico al respecto.

Library/Containers/com.doublefine.dfaosx/Container.plist
Library/Containers/com.doublefine.dfaosx/Data/Documents/BrokenAge/saves/*
Library/Containers/com.doublefine.dfaosx/Data/Library/Saved Application State/com.doublefine.dfaosx.savedState/*

Los archivos en saves se llaman auto.sav , auto.cav , slot_1.sav , slot_2.sav y luego algunos.

Los ejemplos de enlaces simbólicos son (hay alrededor de 60 de estos, la mayoría de los cuales son irrelevantes para el juego, se crean de forma predeterminada como medio para alcanzar algunos archivos Library ):

Library/Containers/com.doublefine.dfaosx/Data/Library/ColorPickers
    
pregunta forthrin 28.05.2018 - 14:42

1 respuesta

1

Puede pasar una lista de nombres de archivos para hacer una copia de seguridad de tar ejecutando primero find :

cd ~/Library/Containers/
tar -T <(find com.doublefine.dfaosx -type f -print) -cvzf ~/dfaosx.tar.gz
tar -T <(find com.doublefine.dottosx -type f -print) -cvzf ~/dfaosx.tar.gz

Si prefieres rsync , admite una opción --files-from que más o menos hace lo mismo que -T para tar .

    
respondido por el nohillside 28.05.2018 - 19:01

Lea otras preguntas en las etiquetas