在Perl中获取文件信息
您可以使用一系列统称为-Xtests的测试运算符在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"; }
这是功能列表,您可以检查文件或目录-
脚本开始时间减去文件上次访问时间(以天为单位)。
是二进制文件吗?
脚本开始时间减去文件的最后一个inode更改时间(以天为单位)。
脚本开始时间减去文件修改时间(以天为单位)。
文件由真实用户ID拥有吗?
该文件可以由真实用户ID或真实组读取吗?
文件是套接字吗?
是文本文件吗?
该文件可以由真实用户ID或真实组写入吗?
该文件可以由真实用户ID或真实组执行吗?
它是块特殊文件吗?
这是字符专用文件吗?
文件是目录吗?
文件是否存在?
它是纯文件吗?
文件是否设置了setgid位?
文件是否设置了粘性位?
文件是符号链接吗?
文件是否归有效用户标识所有?
文件是命名管道吗?
有效用户或组ID可以读取文件吗?
返回文件的大小,零大小=空文件。
文件句柄是否由TTY(终端)打开?
文件是否设置了setuid位?
该文件可以由有效的用户或组ID写入吗?
文件是否可以由有效的用户或组ID执行?
文件大小是否为零?