Perl语言入门(第五版) 读书笔记(六)---文件测试

第十二章 文件测试
1. 文件测试操作符
 -r:文件或目录对此(有效的)用户(effective user)或组是可读的
 -w:文件或目录对此(有效的)用户或组是可写的
 -x:文件或目录对此(有效的)用户或组是可执行的
 -o:文件或目录由本(有效的)用户所有
 -R:文件或目录对此用户(real user)或组是可读的
 -W:文件或目录对此用户或组是可写的
 -X:文件或目录对此用户或组是可执行的
 -O:文件或目录由本用户所有
 -e:文件或目录名存在
 -z:文件存在,大小为0(目录恒为false)
 -s:文件或目录存在,大小大于0(值为文件的大小,单位:字节)
 -f:为普通文本
 -d:为目录
 -l:为符号链接
 -S:为socket-p 为管道(Entry is a named pipe(a“fifo”))
 -b:为block-special 文件(如挂载磁盘)
 -c:为character-special 文件(如I/O 设备)
 -u:setuid 的文件或目录
 -g:setgid 的文件或目录
 -k:File or directory has the sticky bit set
 -t:文件句柄为TTY(系统函数isatty()的返回结果;不能对文件名使用这个测试)
 -T:文件有些像“文本”文件
 -B:文件有些像“二进制”文件
 -M:修改的时间(单位:天)
 -A:访问的时间(单位:天)
 -C:索引节点修改时间(单位:天)
 
 print "$filename \n" if -s $filename > 100_000 and -A $filename > 90;
 our $size_in_k = (-s) / 1024; # 即 -s $_ , 必须带括号
 foreach (@filelist) { 
  print "$_ is readable\n" if -r ; /*即 -r $_ 
 }
 if ( -e $filename and -r $filename ) {}
 if ( -e $filename and -r _ ) {} # _代表上回查询的文件
 if ( -r -w -x -o -d $filename ) {}  #栈式测试,靠近文件名的先执行

2. stat、lstat、localtime、gmtime、time函数
 time 函数可以从系统时钟取得当前时间;
 my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat($filename)
 lstat查看符号链接文件本身的属性。
 my ($sec,$min,$hour,$mday,$mon,$year_off,$wday,$yday,$isdat) = localtime; # localtime(time())

3. 位运算
 &按位与 |按位或  ^按位异或  ~按位取反(对串和整数都可使用)  <<左移  >>右移

你可能感兴趣的:(Perl语言入门(第五版) 读书笔记(六)---文件测试)