2010-12-13 8 views

答えて

7

$mode = (stat($filename))[2]; 
printf "Permissions are %04o\n", $mode & 07777; 
2
my $mode; 
(undef, undef, $mode) = stat($directoryname); 
+0

'lsの-ldの/ etc/cron.d'の出力は何ですか? – cdhowie

5

他の例としては、あなたが知る必要モードがSTAT出力の3番目の項目であること(すなわち、[2])。 File :: statは記号的な名前を与えることができます。

use File::stat ; 
my $dir = '/etc/cron.d' ; 
printf "%o", stat($dir) -> mode ; 
+1

+1このモジュールはstat組み込み関数よりも優れています – daxim

0

これまでの回答です。私は良い良いモジュールを追加したい。

ほとんどの場合、後でファイルを操作できるように、ファイルのモードを知りたいだけです。 use Fcntl qw(:mode)またはuse POSIX qw(:sys_stat_h)は、必要な定数をエクスポートします。 S_IXUSR。私はこれが扱いにくく、エラーが発生しやすいことがわかります。なぜなら、Perlでは、8進数とビット演算子で数学に遭遇するまれな時間だからです。それはあなたが明示的に古いモードを照会し、新しいものを計算する必要なしに変更

  • を表現することができますので、この目的のために

    File::chmodは、より身近な方法で

  • をより良いインターフェースを持っています例えば、
    • chmod(1)から知られている象徴的なものです。 u-x
    • ls(1)のように、 -rw-r--r--
関連する問題