加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

文件与目标操作

发布时间:2020-12-16 00:21:24 所属栏目:大数据 来源:网络整理
导读:-- Start 文件测试 有时候我们需要判断某个文件是否存在,很简单,使用 -e 即可,下面是一个简单例子。 #!/usr/bin/perlprint "请输入路径和文件名:n";chomp (my $file = STDIN);if(! -e "$file") {print STDERR "找不到$file文件";} 除此之外,我们还可以

-- 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 "$filen";
}

# 关闭目录句柄
closedir DIR;


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

-- 更多参见:Perl 精萃

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读