获取 Linux/Perl 上的权限位字符串?
Get permission bits string on Linux/Perl?
我想编写一个 shell / Perl 脚本来检查文件是否设置了特定的权限位。
例如我想检查一个文件是否有像
这样的权限
drwxr-s---
当我在 Perl 中使用 stat
函数时,它给了我一个十进制数。
有没有办法在我的 perl 脚本中得到像上面那样的确切字符串并进行比较?
如果没有 - 有没有办法将该字符串转换为数字然后进行比较?
为什么不直接将十进制数转换为二进制形式并使用二进制与或异或?
此代码为您提供二进制权限:
printf '%b', (stat 'filename.txt')[2] & 07777;
例如-rw-r-----二进制形式就是110100000。
我以某种方式获得了需要比较的数字,这就是我用来获得所需答案的数字 -
my $mode = (stat('$file'))[2];
printf("permissions are %04o\n", $mode & 07777);
这对我有用!!
我想编写一个 shell / Perl 脚本来检查文件是否设置了特定的权限位。
例如我想检查一个文件是否有像
这样的权限drwxr-s---
当我在 Perl 中使用 stat
函数时,它给了我一个十进制数。
有没有办法在我的 perl 脚本中得到像上面那样的确切字符串并进行比较?
如果没有 - 有没有办法将该字符串转换为数字然后进行比较?
为什么不直接将十进制数转换为二进制形式并使用二进制与或异或?
此代码为您提供二进制权限:
printf '%b', (stat 'filename.txt')[2] & 07777;
例如-rw-r-----二进制形式就是110100000。
我以某种方式获得了需要比较的数字,这就是我用来获得所需答案的数字 -
my $mode = (stat('$file'))[2];
printf("permissions are %04o\n", $mode & 07777);
这对我有用!!