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ć?

hknik
źródło

Odpowiedzi:

91

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

-h, --dereference
    don't archive symlinks; archive the files they point to
Mata
źródło
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/*/
Patrick
źródło
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