Esegui il backup solo dei file effettivi nella struttura delle directory

0

Voglio eseguire il backup dei miei salvataggi:

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

Inizialmente volevo farlo come parte di un backup rsync più grande. Tuttavia, a causa di alcune follia macOS sandbox, le cartelle includono dozzine di collegamenti simbolici di cui non voglio eseguire il backup, escludendole con difficoltà con rsync (vedere domanda correlata ).

Come posso eseguire il backup solo dei preziosi file di salvataggio ed escludere i collegamenti simbolici, senza specificare esplicitamente molte sottocartelle. Voglio specificare "Esegui il backup di tutti i file reali in questa cartella radice, escludendo i collegamenti simbolici e le sottocartelle che non contengono in definitiva un file reale".

Ho provato anche zip , ma non sembra nemmeno avere un'opzione per escludere i collegamenti simbolici. Può tar farlo? Sarebbe meglio se rsync potesse farlo, ma in caso contrario, qualsiasi strumento Unix standard sarebbe accettabile.

I file che voglio fare il backup sono i seguenti. Naturalmente potrei specificarli esplicitamente, ma voglio imparare un modo per eseguire il backup di file reali e ignorare i collegamenti simbolici senza ottenere informazioni specifiche su di esso.

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/*

I file in saves sono chiamati auto.sav , auto.cav , slot_1.sav , slot_2.sav e poi alcuni.

Esempi di link simbolici sono (ce ne sono circa 60, la maggior parte dei quali è irrilevante per il gioco, sono solo creati di default come mezzo per raggiungere alcuni file Library ):

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

1 risposta

1

Puoi passare un elenco di nomi di file per il backup su tar eseguendo find prima:

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

Se preferisci rsync supporta un'opzione --files-from che più o meno fa lo stesso di -T per tar .

    
risposta data 28.05.2018 - 19:01
fonte

Leggi altre domande sui tag