Codebase list libfile-lchown-perl / 36cfb020-fa08-4e99-98f8-ba5891577131/main
36cfb020-fa08-4e99-98f8-ba5891577131/main

Tree @36cfb020-fa08-4e99-98f8-ba5891577131/main (Download .tar.gz)

NAME

    File::lchown - modify attributes of symlinks without dereferencing them

SYNOPSIS

     use File::lchown qw( lchown lutimes );
    
     lchown $uid, $gid, $linkpath or die "Cannot lchown() - $!";
    
     lutimes $atime, $mtime, $linkpath or die "Cannot lutimes() - $!";

DESCRIPTION

    The regular chown system call will dereference a symlink and apply
    ownership changes to the file at which it points. Some OSes provide
    system calls that do not dereference a symlink but instead apply their
    changes directly to the named path, even if that path is a symlink (in
    much the same way that lstat will return attributes of a symlink rather
    than the file at which it points).

FUNCTIONS

 $count = lchown $uid, $gid, @paths

    Set the new user or group ownership of the specified paths, without
    dereferencing any symlinks. Passing the value -1 as either the $uid or
    $gid will leave that attribute unchanged. Returns the number of files
    successfully changed.

 $count = lutimes $atime, $mtime, @paths

    Set the access and modification times on the specified paths, without
    dereferencing any symlinks. Passing undef as both $atime and $mtime
    will update the times to the current system time.

    Note that for both lchown and lutimes, if more than one path is given,
    if later paths succeed after earlier failures, then the value of $!
    will not be reliable to indicate the nature of the failure. If you wish
    to use $! to report on failures, make sure only to pass one path at a
    time.

TODO

      * Implement sub-second precision on lutimes, most likely by taking
      floats or two-element ARRAY refs, similar to Time::HiRes uses.

SEE ALSO

      * lchown(2) - change ownership of a file

      * lutimes(2) - change file timestamps

AUTHOR

    Paul Evans <leonerd@leonerd.org.uk>