文件与目标操作

-- Start

文件测试

有时候我们需要判断某个文件是否存在,很简单,使用 -e 即可,下面是一个简单例子。

#!/usr/bin/perl

print "请输入路径和文件名:\n";
chomp (my $file = <STDIN>);


if(! -e "$file") {
	print STDERR "找不到$file文件";
}


除此之外,我们还可以通过下面的操作符来测试文件的其他属性。

文件测试操作符意义
-r文件或目录,对当前用户或组来说是可读的
-w文件或目录,对当前用户或组来说是可写的
-x文件或目录,对当前用户或组来说是可执行的
-o文件或目录,由当前用户拥有
-R文件或目录,对实际的用户或组来说是可读的
-W文件或目录,对实际的用户或组来说是可写的
-X文件或目录,对实际的用户或组来说是可执行的
-O文件或目录,由实际的用户拥有
-e文件或目录,是否存在
-z是否为空文件
-s返回文件或目录的大小
-f是否为普通文件
-d是否为目录
-l是否为符号链接
-S是否为socket
-p是否为管道
-b是否为块设备
-c是否为字符设备
-u是否设置了setuid位
-g是否设置了setgid位
-k是否设置了sticky位
-t是否表示终端
-T是否为文本文件
-B是否为二进制文件
-M距上次修改的天数
-A距上次访问的天数
-C距上次访问文件的inode的天数

事实上,文件还有许多其他属性,遗憾的是它们没有对应的测试操作符,幸运的是我们可以通过函数 stat 来取得这些属性,有关 stat 的更详细介绍请参见此处

文件操作

 下面是一个对文件操作的简单例子。

#!/usr/bin/perl

# 从当前目录找到所有的mp3文件
my @files=glob "*.mp3"; # 方式 1
foreach my $file (@files) {
	unlink $fike; # 删除文件
}


# 从当前目录找到所有的log文件
my @files=<*.log>; # 方式 2
foreach my $file (@files) {
	rename "$file", "$file.bak" # 重命名
}

 

目录操作

 在 Perl 中,我们可以通过文件句柄来操作一个文件,事实上,我们也可以通过目录句柄来操作目录,下面是一个简单的例子。

#!/usr/bin/perl

print "请指定一个目录:\n";
chomp (my $path = <STDIN>);

# 打开目录句柄
opendir DIR, $path or die "$!";

# 查看目录中的子目录及文件
foreach my $file (readdir DIR) {
	print "$file\n";
}

# 关闭目录句柄
closedir DIR;


此外,Perl 还提供了一些操作目录的函数,如:chdir, mkdir, rmdir 等,更多关于如何操作文件和目录需要专用的模块。

-- 更多参见:Perl 精萃

-- 声 明:转载请注明出处
-- Last Updated on 2012-07-12
-- Written by ShangBo on 2012-07-11
-- End



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值