Jak utworzyć kopię zapasową z dowiązań symbolicznych?


63

Mam katalog z symbolicznymi linkami do innych katalogów. Chcę zarchiwizować dowiązania symboliczne, nie jako łącza, ale jako archiwa zawierające pliki katalogów, do których się odnoszą, za pomocą polecenia tar. Jak mogę to zrobić?

Odpowiedzi:


91

Użyj -hopcji tar. Ze strony podręcznika:

-h, --dereference
    don't archive symlinks; archive the files they point to

3
Jeśli mam / sym1 wskazuje na / backups i / sym2 wskazuje na / backups, to czy uruchomię, tar -hcf file.tar /sym1 /sym2czy dostanę / backups dwa razy?
Felipe Alvarez

@FelipeAlvarez -Lliczy pliki raz, -lwiele razy. Zobacz tutaj .
Suuuehgi,

3

Jeśli wszystkie linki znajdują się w katalogu głównym, możesz usunąć je z powłoki i przekazać do tar jako argumenty. Na przykład, jeśli masz / backup / source / a i / backup / source / b, oba będące dowiązaniami symbolicznymi wskazującymi na prawdziwy katalog, działałoby coś takiego

tar -cf /path/to/backup.tar /backup/source/*/

Nie działa tutaj. Wygląda na to, że tar -cf /path/to/backup.tar /backup/source/a/sam nie działa nawet, gdy ajest dowiązaniem symbolicznym.
Zero3
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.