85

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?

2 Answers 2

132

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

-h, --dereference don't archive symlinks; archive the files they point to 
3
  • 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? Commented Jan 28, 2015 at 23:55
  • @FelipeAlvarez -L counts files once, -l multiple times. See here. Commented Apr 11, 2018 at 22:02
  • 2
    the order of options matters. ie tar -czfvh will fail tar -hczfv will work Commented Jan 26, 2023 at 12:49
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/*/ 
1
  • 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. Commented Jan 3, 2016 at 19:52

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.