Perlでパーミッションを変更する・chmod

Perlのmkdirでパーミッションを指定してもumaskが有効になるためmkdirに指定したパーミッション値になりません。
(umaskが0であれば意図したパーミッションになりますが…)

以下にディレクトリおよびファイルのパーミッションを変更するchmodについてサンプルコードを記します。

htmlinsert(): The given local file does not exist or is not readable.

関連記事

動作確認環境

chmodのサンプルコード

本サンプルコードを実行する前に、端末から以下のコマンドでファイルおよびディレクトリを作成しました。

$ touch foo.txt
$ mkdir bar

パーミッションは以下の通りです。

$ ls -ld foo.txt bar/
drwxrwxr-x 2 sakura sakura 4096  3月  6 11:21 bar/
-rw-rw-r-- 1 sakura sakura    0  3月  6 11:21 foo.txt

umask値は以下の通りです。

$ umask
0002

上記のサンプルコードを以下のように書くこともできます。
上記と同様の動作になります。

use strict;
use warnings;

my @t = ('foo.txt', 'bar');
chmod 0777, @t;

以上、Perlでパーミッションを変更するときのサンプルコードでした。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-12 (水) 11:39:12