在 Perl 中获取文件信息


您可以使用一系列统称为 **-X 测试** 的测试运算符在 Perl 中非常快速地测试某些功能。例如,要快速测试文件上的各种权限,您可以使用如下脚本 -

#/usr/bin/perl
my $file = "/usr/test/file1.txt";
my (@description, $size);
if (-e $file) {
   push @description, 'binary' if (-B _);
   push @description, 'a socket' if (-S _);
   push @description, 'a text file' if (-T _);
   push @description, 'a block special file' if (-b _);
   push @description, 'a character special file' if (-c _);
   push @description, 'a directory' if (-d _);
   push @description, 'executable' if (-x _);
   push @description, (($size = -s _)) ? "$size bytes" : 'empty';
   print "$file is ", join(', ',@description),"\n";
}

以下是您可以检查文件或目录的功能列表 -

序号运算符 & 定义
1-A
脚本开始时间减去文件上次访问时间(以天为单位)。
2-B
它是二进制文件吗?
3-C
脚本开始时间减去文件上次 inode 更改时间(以天为单位)。
4-M
脚本开始时间减去文件修改时间(以天为单位)。
5-O
该文件是否由真实用户 ID 拥有?
6-R
该文件是否可由真实用户 ID 或真实组读取?
7-S
该文件是否为套接字?
8-T
它是文本文件吗?
9-W
该文件是否可由真实用户 ID 或真实组写入?
10-X
该文件是否可由真实用户 ID 或真实组执行?
11-b
它是块特殊文件吗?
12-c
它是字符特殊文件吗?
13-d
该文件是否为目录?
14-e
文件是否存在?
15-f
它是普通文件吗?
16-g
该文件是否设置了 setgid 位?
17-k
该文件是否设置了粘滞位?
18-l
该文件是否为符号链接?
19-o
该文件是否由有效用户 ID 拥有?
20-p
该文件是否为命名管道?
21-r
该文件是否可由有效用户或组 ID 读取?
22-s
返回文件的大小,零大小 = 空文件。
23-t
文件句柄是否由 TTY(终端)打开?
24-u
该文件是否设置了 setuid 位?
25-w
该文件是否可由有效用户或组 ID 写入?
26-x
该文件是否可由有效用户或组 ID 执行?
27-z
文件大小是否为零?

更新于: 2019-11-29

482 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告