您可以使用一系列统称为-X tests的测试运算符在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 | - 脚本开始时间减去文件上次访问时间(以天为单位)。 |
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 文件是否归有效用户标识所有? |
20 | -p 文件是命名管道吗? |
21 | -r 有效用户或组ID可以读取文件吗? |
22 | -s 返回文件的大小,零大小=空文件。 |
23 | -t 文件句柄是否由TTY(终端)打开? |
24 | -u 文件是否设置了setuid位? |
25 | -w 该文件可以由有效的用户或组ID写入吗? |
26 | -x 文件是否可以由有效的用户或组ID执行? |
27 | -z 文件大小是否为零? |