No::Worries::Stat man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

No::Worries::Stat(3)  User Contributed Perl Documentation No::Worries::Stat(3)

NAME
       No::Worries::Stat - stat() handling without worries

SYNOPSIS
	 use No::Worries::Stat qw(*);

	 @stat = stat($path) or die;
	 printf("type is %s\n", stat_type($stat[ST_MODE]));
	 printf("size is %d\n", $stat[ST_SIZE]);
	 printf("user can read\n") if $stat[ST_MODE] & S_IRUSR;

	 # make sure "/bin/ls" is owned by root and has the right permissions
	 state_ensure("/bin/ls", user => "root", mode => 0755);
	 # make sure "/var/log" is not group or world writable
	 state_ensure("/var/log", mode => "-022");
	 # idem but using the S_* constants
	 state_ensure("/var/log", mode => "-" . (S_IWGRP|S_IWOTH));

DESCRIPTION
       This module eases file status handling by providing convenient
       constants and functions to get, set and manipulate file status
       information. All the functions die() on error.

CONSTANTS
       This module provides the following constants to ease access to stat()
       fields (none of them being exported by default):

       "ST_DEV"
	   ID of device containing file

       "ST_INO"
	   inode number

       "ST_MODE"
	   protection

       "ST_NLINK"
	   number of hard links

       "ST_UID"
	   user ID of owner

       "ST_GID"
	   group ID of owner

       "ST_RDEV"
	   device ID (if special file)

       "ST_SIZE"
	   total size, in bytes

       "ST_ATIME"
	   time of last access

       "ST_MTIME"
	   time of last modification

       "ST_CTIME"
	   time of last status change

       "ST_BLKSIZE"
	   blocksize for filesystem I/O

       "ST_BLOCKS"
	   number of 512B blocks allocated

       In addition, it also optionally exports all the "mode" constants from
       Fcntl.

       This way, all the stat() related constants can be imported in a uniform
       way.

FUNCTIONS
       This module provides the following functions (none of them being
       exported by default):

       stat_type(MODE)
	   given the file mode ("ST_MODE" field), return the file type as a
	   string; possible return values are: "block device", "character
	   device", "directory", "door", "event port", "network file", "pipe",
	   "plain file", "socket", "symlink" and "whiteout".

       stat_ensure(PATH[, OPTIONS])
	   make sure the given path has the expected file "status" (w.r.t.
	   stat()) and call chown(), chmod() or utime() if needed, supported
	   options:

	   ·   "user": expected user name or uid

	   ·   "group": expected group name or gid

	   ·   "mode": expected mode specification (see below)

	   ·   "mtime": expected modification time

	   ·   "follow": follow symbolic links (default is to skip them)

	   ·   "callback": code to be executed before changing something (see
	       below)

       The "mode" option of stat_ensure() can be given:

       NUMBER
	   an absolute value like 0755, meaning that mode must be equal to it

       +NUMBER
	   a list of bits that must be set, e.g. "+0111" for "executable for
	   all"

       -NUMBER
	   a list of bits that must be clear, e.g. "-022" for not writable by
	   group or other

       Note: the number after "+" or "-" will be interpreted as being octal
       only if it starts with "0". You should therefore use "+0111" or
       "+".oct(111) to enable the executable bits but not "+111" which is the
       same as "+0157".

       The "callback" option of stat_ensure() will receive the given path and
       a string describing what is about to be changed. It must return true to
       tell stat_ensure() to indeed perform the changes.

       Here is for insatnce how a "noaction" option could be implemented:

	 sub noaction ($$) {
	     my($path, $change) = @_;

	     printf("did not change %s of %s\n", $change, $path);
	     return(0);
	 }
	 foreach my $path (@paths) {
	     state_ensure($path, user => "root", mode => 0755, callback => \&noaction);
	 }

SEE ALSO
       Fcntl, No::Worries.

AUTHOR
       Lionel Cons <http://cern.ch/lionel.cons>

       Copyright CERN 2012

perl v5.14.3			  2012-12-19		  No::Worries::Stat(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net