ファイルとターゲット操作

2434 ワード

-- Start

ファイルテスト


あるファイルが存在するかどうかを判断する必要がある場合があります.簡単です.-eを使用すればいいです.次は簡単な例です.
#!/usr/bin/perl

print " :
"; chomp (my $file = <STDIN>); if(! -e "$file") { print STDERR " $file "; }

また、次のオペレータでファイルの他のプロパティをテストすることもできます.
ファイルテストオペレータ
意味
-r
ファイルまたはディレクトリは、現在のユーザーまたはグループにとって読み取り可能です.
-w
ファイルまたはディレクトリ、現在のユーザーまたはグループに対して書き込み可能
-x
ファイルまたはディレクトリは、現在のユーザーまたはグループに対して実行可能です.
-o
現在のユーザーが所有するファイルまたはディレクトリ
-R
ファイルまたはディレクトリは、実際のユーザーまたはグループにとって読み取り可能です.
-W
ファイルまたはディレクトリは、実際のユーザーまたはグループにとって書き込み可能です.
-X
ファイルまたはディレクトリは、実際のユーザーまたはグループにとって実行可能です.
-O
実際のユーザーが所有するファイルまたはディレクトリ
-e
ファイルまたはディレクトリ、存在するかどうか
-z
空のファイルかどうか
-s
ファイルまたはディレクトリのサイズを返します.
-f
標準ファイルかどうか
-d
ディレクトリ
-l
シンボルリンクかどうか
-S
ソケットかどうか
-p
パイプかどうか
-b
ブロックデバイスかどうか
-c
文字デバイスかどうか
-u
setuidビットが設定されているかどうか
-g
setgidビットが設定されているかどうか
-k
stickyビットが設定されているかどうか
-t
端末を表示するかどうか
-T
テキストファイルかどうか
-B
バイナリファイルかどうか
-M
最終変更からの日数
-A
前回アクセスからの日数
-C
最後にファイルにアクセスしたinodeからの日数
実際、ファイルには他にも多くのプロパティがありますが、残念ながら対応するテストオペレータはありません.幸いなことに、これらのプロパティは関数statで取得できます.statの詳細については、ここを参照してください.

ファイルアクション


ファイル操作の簡単な例を次に示します.
#!/usr/bin/perl

#  mp3 
my @files=glob "*.mp3"; #   1
foreach my $file (@files) {
	unlink $fike; #  
}


#  log 
my @files=<*.log>; #   2
foreach my $file (@files) {
	rename "$file", "$file.bak" #  
}

 

ディレクトリアクション


Perlでは、ファイルハンドルを使用してファイルを操作できます.実際には、ディレクトリハンドルを使用してディレクトリを操作することもできます.以下は簡単な例です.
#!/usr/bin/perl

print " :
"; chomp (my $path = <STDIN>); # opendir DIR, $path or die "$!"; # foreach my $file (readdir DIR) { print "$file
"; } # closedir DIR;

また、Perlは、chdir、mkdir、rmdirなど、ファイルやディレクトリを操作するために専用のモジュールが必要な操作ディレクトリの関数も提供しています.
--詳細は、Perlエキス
--声明:転載は出典を明記してください--Last Updated on 2012-07-12--Written by ShangBo on 2012-07-11--End