在 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 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.