在 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 文件大小是否为零? |
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP