![]() |
![]() |
TOP > Perl > ファイルとディレクトリの扱い |
![]() |
![]() |
ファイルの削除
unlink演算子を使ってファイルを削除する事ができる。unlinkは、削除した個数を返す。また、unlinkはディレクトリを消す事ができないし、パーミッションに関係なく削除できる。但し、対象ディレクトリが自分の所有の時のみ。(/etc/などは、システム管理者の所有なので削除できない)
unlinkの例
unlink "aaa.txt", "bbb.txt", "ccc.txt"; #unlinkはリストを受け取れるので、グロブを使って書くこともできる unlink glob "*.cpp"; foreach $fname (qw/ aaa.txt bbb.txt ccc.txt/) { unlink $fname or warn "not delete $fname:$!"; } ファイル名の変更
すでに存在するファイル名を変更するには、renameを使う。
(書式)rename 変更前のファイル名, 変更後のファイル名;
renameの例
foreach $fname (glob "*.cpp") { my $newfile = $fname; $newfile =~ s/\.cpp/\.c/; #上記の2行は以下の一行と一緒 #(my $newfile = $file) =~ s/\.cpp/\.c/; if (-e $newfile) { warn "$newfile exist $!"; } elsif (rename $fname $newfile) { #処理を行わない } else { warn "error! $!"; } } ハードリンクとシンボリックリンク
ハードリンクはlink関数で作成できる。
(書式)link "元ファイル名", "後ファイル名";
一方、シンボリックリンクは、symlinkで作成できる。
(書式)symlink "対象ファイル名", "シンボリック名";
シンボリックのさしている場所を示すには、readlinkを使う。
(書式)実態の場所 = readlink "シンボリック名";
ディレクトリの作成と削除
ディレクトリの作成は、mkdirを使う。
(書式) mdkir "ディレクトリ名", 初期パーミッション
mkdirの例
mkdir "tmp", 0777 or warn "can not reate dir:tmp! $!"; #ディレクトリの削除には、rmdirを使う rmdir "tmp"; パーミッションの変更
パーミッションの変更は、chmodを使う。
(書式) chmod パーミッション値, "変更する名前";
ファイルのオーナーを変更する
ファイルのオーナーを変更するには、chownを使う。
(書式)chown ユーザーID, グループ名, "対象ファイル";
chownの例
$usr= 1000; $group = 200; chown $usr, $group, glob "*.cpp"; #IDでしか使えないので、IDを調べるには、getpwnam, getgrnamを使う。 $usr_id = getpwnam "bbb"; $usr_grp_id = getgrnam "ccc"; タイムスランプの変更
ファイルのタイムスランプを変更するには、utimeを使う。
utimeの例
$now = time;#現在の時刻 $back = $now - 24 * 60 * 60; #一日前に変更 utime $now, $back, glob "*.cpp"; |
![]() |
![]() |
Copyright 2007 ためになるホームページ All Rights Reserved. |