64

I have a directory with symbolic links to other directories. I want to archive the symbolic links, not as links but as archives containing the files of directories they refer to, using tar command. How can I do this?

93

Use the -h tar option. From the man page:

-h, --dereference
    don't archive symlinks; archive the files they point to
  • 4
    If I have /sym1 points to /backups and /sym2 points to /backups, then I run tar -hcf file.tar /sym1 /sym2 will I get /backups twice? – Felipe Alvarez Jan 28 '15 at 23:55
  • @FelipeAlvarez -L counts files once, -l multiple times. See here. – Suuuehgi Apr 11 '18 at 22:02
3

If the links are all in the root directory you can have the shell dereference them and pass to tar as arguments. For example if you have /backup/source/a and /backup/source/b, both of which are symlinks pointing to the real directory, something like the following would work

tar -cf /path/to/backup.tar /backup/source/*/
  • Doesn't work here. Seems like tar -cf /path/to/backup.tar /backup/source/a/ alone doesn't even work when a is a symlink. – Zero3 Jan 3 '16 at 19:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.