timestamp on symlink
Donovan Baarda
abo at minkirri.apana.org.au
Sun Jul 28 20:31:02 EST 2002
On Mon, Jul 29, 2002 at 12:40:56PM +1000, Martin Pool wrote:
> On 28 Jul 2002, Michael Wang <mwang at mindspring.com> wrote:
> > rsync does not sync the timestamp on symlink (Solaris 8).
> >
> > It is probablly due to the limitation of Unix implementation
> > of symlink, but I would like to know why rsync/Unix does not
> > do this, and what we can do about it. Is the conclusion that
> > "rsync syncs everything except the timestamp on symlink"?
>
> I don't think it is possible to set the time of a symbolic link. A
> quick experiment on Linux seems to confirm that:
>
> !891 12:36 ~% python2.2
> Python 2.2.1 (#1, May 3 2002, 23:19:03)
> [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import os
> >>> os.symlink('nothere', '/tmp/mylink')
> >>> os.utime('/tmp/mylink', None)
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> OSError: [Errno 2] No such file or directory: '/tmp/mylink'
This is because most of python's os.xxx methods de-reference symlinks. You
get this error because 'nothere' doesn't exist. The correct way to get time
info on symlinks is to use os.lstat(), which doesn't de-reference links.
Python 2.1.3 (#1, Apr 20 2002, 10:14:34)
[GCC 2.95.4 20011002 (Debian prerelease)] on linux2
Type "copyright", "credits" or "license" for more information.
>>> import os
>>> os.symlink('nothere','mylink')
>>> os.lstat('mylink')
(41471, 64782L, 10L, 1, 1000, 1000, 7L, 1027913015, 1027913005, 1027913005)
>>>
--
----------------------------------------------------------------------
ABO: finger abo at minkirri.apana.org.au for more info, including pgp key
----------------------------------------------------------------------
More information about the rsync
mailing list