perl學習筆記——檔案測試

來源:互聯網
上載者:User

標籤:

檔案測試主要用於查看如檔案是否存在、檔案大小、檔案更新時間等資訊。

檔案測試操作符

-e  測試檔案是否存在;

die "Oops!A file called ‘$filename‘ already exists.\n" if -e $filename;

-M 測試檔案是否保持持續的更新,比如測試某個程式的記錄檔是否保持每一周或兩周更新。

此處測試的是檔案控制代碼。

warn "Config file is looking pretty old!\n" if -M CONFIG>28;

-s 測試檔案的大小,以位元組計算檔案大小。

 例子:下面測試的是檔案大小超過100位元組,且更新日期低於兩天的本檔案夾下的檔案。

#!/usr/bin/env perl
#filename:test2.pluse 5.010;while(<>){ if(/\A-.*/){ my @line=split /\s+/,"$&";# say "$line[8]"; say "$line[8]\tis bigger than 100bytes." if -s $line[8] > 100 and -M $line[8] > 2; }}
運行命令:ls -l | ./<filename>

 如何查看檔案的大小(以M為單位):my size= (-s $filename)/1024;

注意一定要加括弧。

其他的檔案測試項

 

-r:檔案或目錄對此(有效)使用者(effective user)或組是可讀的-w:檔案或目錄對此(有效)使用者或組是可寫的-x:檔案或目錄對此(有效)使用者或組是可執行檔-o:檔案或目錄由本(有效)使用者所有-R:檔案或目錄對此使用者(real user)或組是可讀的-W:檔案或目錄對此使用者或組是可寫的-X:檔案或目錄對此使用者或組是可執行檔-O:檔案或目錄由本使用者所有-e:檔案或目錄名存在-z:檔案存在,大小為0(目錄恒為false)-s:檔案或目錄存在,大小大於0(值為檔案的大小,單位:位元組)-f:為普通文本-d:為目錄-l:為符號連結-S:為socket-p 為管道(Entry is a named pipe(a“fifo”))-b:為block-special 檔案(如掛載磁碟)-c:為character-special 檔案(如I/O 裝置)-u:setuid 的檔案或目錄-g:setgid 的檔案或目錄-k:File or directory has the sticky bit set-t:檔案控制代碼為TTY(系統函數isatty()的返回結果;不能對檔案名稱使用這個測試)-T:檔案有些像“文本”檔案-B:檔案有些像“二進位”檔案-M:修改的時間(單位:天)-A:訪問的時間(單位:天)-C:索引節點修改時間(單位:天)

 

 

測試同一個檔案的多項屬性

if(-r $file and -w _) # 虛擬檔案控制代碼_

{...

棧式檔案操作符

use 5.010;

if( -r -w -x -o -d $file){

  print "My directory is readable,writable,and executable!\n";

}

 

perl學習筆記——檔案測試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.