Re: tar up a symbolic linked directory
"Douglas A. Tutty" <dtutty@vianet.ca> writes:
>On Sat, May 02, 2009 at 09:04:38PM +0000, T o n g wrote:
>> Hi,
>>
>> I want to tar up a symbolic linked directory as if it is a real
>> directory. Is there any easy way to do it?
>>
>> Let me explain with an example (that you can try):
>>
>> mkdir d1
>> touch d1/{a,b,c}
>> ln -s c d1/d
>> ln -s d1 d2
>>
>> I want that the result tar file looks like this:
>>
>> tar -tvzf d2.tgz
>> drwxrwx--x tong/tong 0 2009-05-01 09:38 d2/
>> -rw-rw---- tong/tong 0 2009-05-01 09:37 d2/a
>> -rw-rw---- tong/tong 0 2009-05-01 09:37 d2/b
>> -rw-rw---- tong/tong 0 2009-05-01 09:37 d2/c
>> lrwxrwxrwx tong/tong 0 2009-05-01 09:38 d2/d -> c
>>
>> Any easy way to do it?
>add -h to the tar parameters. It dereferences the symbolic lyinks.
>However, then you won't get the d2/d -> c reference.
I can't see that it would be possible to dereference the top-level
symlink but no others. No commands that I know of support selective
symlink dereferencing, except find(1) with -H.
That lead me to try:
$ find -H d2 | cpio -o -L -H ustar > d2.tar
This comes close, storing d2/d as a link, but as a hardlink, not a
symlink.
Reply to: