1.The -x File Tests
Table 10.1: File Tests and Their Meanings
File Test Meaning
-r File or directory is readable
-w File or directory is writable
-x File or directory is executable
-o File or directory is owned by user
-R File or directory is readable by real user, not effective user (differs from -r for setuid
programs)
-W File or directory is writable by real user, not effective user (differs from -w for setuid
programs)
-X File or directory is executable by real user, not effective user (differs from -x for setuid
programs)
-O File or directory is owned by real user, not effective user (differs from -o for setuid
programs)
-e File or directory exists
-z File exists and has zero size (directories are never empty)
-s File or directory exists and has nonzero size (the value is the size in bytes)
-f Entry is a plain file
-d Entry is a directory
-l Entry is a symlink
-S Entry is a socket
-p Entry is a named pipe (a "fifo")
-b Entry is a block-special file (like a mountable disk)
-c Entry is a character-special file (like an I/O device)
-u File or directory is setuid
-g File or directory is setgid
-k File or directory has the sticky bit set
-t isatty() on the filehandle is true
-T File is "text"
-B File is "binary"
-M Modification age in days
-A Access age in days
-C Inode-modification age in days
2.The stat and lstat Functions
1
print
"
where?
"
;
2 $filename = < STDIN > ;
3 chomp $filename ; # toss pesky newline
4 if ( - r $filename && - w $filename ) {
5 # file exists, and I can read and write it
6
7 }
2 $filename = < STDIN > ;
3 chomp $filename ; # toss pesky newline
4 if ( - r $filename && - w $filename ) {
5 # file exists, and I can read and write it
6
7 }
Table 10.1: File Tests and Their Meanings
File Test Meaning
-r File or directory is readable
-w File or directory is writable
-x File or directory is executable
-o File or directory is owned by user
-R File or directory is readable by real user, not effective user (differs from -r for setuid
programs)
-W File or directory is writable by real user, not effective user (differs from -w for setuid
programs)
-X File or directory is executable by real user, not effective user (differs from -x for setuid
programs)
-O File or directory is owned by real user, not effective user (differs from -o for setuid
programs)
-e File or directory exists
-z File exists and has zero size (directories are never empty)
-s File or directory exists and has nonzero size (the value is the size in bytes)
-f Entry is a plain file
-d Entry is a directory
-l Entry is a symlink
-S Entry is a socket
-p Entry is a named pipe (a "fifo")
-b Entry is a block-special file (like a mountable disk)
-c Entry is a character-special file (like an I/O device)
-u File or directory is setuid
-g File or directory is setgid
-k File or directory has the sticky bit set
-t isatty() on the filehandle is true
-T File is "text"
-B File is "binary"
-M Modification age in days
-A Access age in days
-C Inode-modification age in days
1
foreach
(
@some_list_of_filenames
) {
2 print " $_ is readable\n " if - r; # same as -r $_
3 }
2 print " $_ is readable\n " if - r; # same as -r $_
3 }
2.The stat and lstat Functions
1
(
$dev
,
$ino
,
$mode
,
$nlink
,
$uid
,
$gid
,
$rdev
,
2 $size , $atime , $mtime , $ctime , $blksize , $blocks ) = stat ( )
2 $size , $atime , $mtime , $ctime , $blksize , $blocks ) = stat ( )