码迷,mamicode.com
首页 > 其他好文 > 详细

perl学习笔记——文件测试

时间:2015-07-25 12:07:31      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

文件测试主要用于查看如文件是否存在、文件大小、文件更新时间等信息。

文件测试操作符

-e  测试文件是否存在;

die "Oops!A file called ‘$filename‘ already exists.\n" if -e $filename;

-M 测试文件是否保持持续的更新,比如测试某个程序的日志文件是否保持每一周或两周更新。

此处测试的是文件句柄。

warn "Config file is looking pretty old!\n" if -M CONFIG>28;

-s 测试文件的大小,以字节计算文件大小。

 例子:下面测试的是文件大小超过100字节,且更新日期低于两天的本文件夹下的文件。

#!/usr/bin/env perl
#filename:test2.pl use 5.010; while(<>) { if(/\A-.*/){ my @line=split /\s+/,"$&"; # say "$line[8]"; say "$line[8]\tis bigger than 100bytes." if -s $line[8] > 100 and -M $line[8] > 2; } }
运行命令:ls -l | ./<filename>

 如何查看文件的大小(以M为单位):my size= (-s $filename)/1024;

注意一定要加括号。

其他的文件测试项

 

-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:索引节点修改时间(单位:天)

 

技术分享

 

测试同一个文件的多项属性

if(-r $file and -w _) # 虚拟文件句柄_

{...

栈式文件操作符

use 5.010;

if( -r -w -x -o -d $file){

  print "My directory is readable,writable,and executable!\n";

}

 

perl学习笔记——文件测试

标签:

原文地址:http://www.cnblogs.com/lukexwang/p/4675466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!