「初めてのPerl」 第十三章 - 2
第十三章の続きから。
第十三章 ディレクトリ操作
内容
用語集
用語 | 説明 |
---|---|
ハードリンク | 同一のiノードを持つこと以外はコピーと挙動は似ている |
シンボリックリンク | windowsで言うショートカットのイメージ |
Point
リンクを作りたい
# 指定したファイルからハードリンクを作るにはlink関数を使う link 'hoge.txt', 'fuga.txt' or warn "$!"; # これでhoge.txtへのハードリンクを持つfuga.txtを作ることが出来る # Unixコマンドで言うlnに似ている
シンボリックリンクを作りたい
# 指定したファイルからハードリンクを作るにはlink関数を使う symlink 'hoge.txt', 'fuga.txt' or warn "$!"; # これでhoge.txtへのシンボリックリンクを持つfuga.txtを作ることが出来る # Unixコマンドで言うln -sに似ている
ディレクトリの作成・削除がしたい
# mkdirでディレクトリの作成が出来る mkdir 'hoge', 0755 or warn "$!"; # 第2引数でパーミッションの指定が出来る # また、rmdirでディレクトリの削除が出来る rmdir 'hoge'; # ただし、rmdirでは空のディレクトリしか削除出来ない # まとめて削除したい場合はFile::Pathモジュールのrmtreeを使うと良い
パーミッションを変更したい
# chmodでファイルやディレクトリのパーミッションを変更出来る chmod 0755, 'hoge';
ファイルのオーナーを変更したい
# chownでファイルの所有者のユーザとグループを変更出来る my $user_id = 501; my $group_id = 501; chown $user_id, $group_id, 'hoge.txt'; # ただ、IDで指定する必要があるため # それぞれユーザ名とグループ名から変換すると良い defined (my $user_id = getpwnam 'user_name') or die 'bad user'; defined (my $group_id = getgrnam 'group_name') or die 'bad group'; chown $user_id, $group_id, 'hoge.txt'; # 変更したくない場合は-1を指定すると良い
タイムスタンプを変更したい
# utimeでファイルのアクセス時間と更新時間を変更出来る my $now = time; my $yesterday = $now - 24 * 60 * 60; utime $now, $yesterday, 'hoge.txt';
次回は
次回は第十四章から。