小编pep*_*ite的帖子

如何获取所有者:使用perl的文件/目录的组名?

有一种很好的方法可以在Linux和AIX上输出权限:

0:root@SERVER:/root # perl -e 'printf "chmod %04o %s\n", (stat)[2] & 07777, $_ for @ARGV' /home      
chmod 0755 /home
0:root@SERVER:/root #
Run Code Online (Sandbox Code Playgroud)

但是如何输出所有者:组?例:

0:root@SERVER:/root # perl SOMEMAGIC /home
chown bin:bin /home
0:root@SERVER:/root #
Run Code Online (Sandbox Code Playgroud)

更新:目前我几乎已经弄明白,只有帮助需要,如果有一个符号链接,它将给root:root.它应该给所有者:符号链接的组!

perl -e '$uid = (stat)[4], $_ for @ARGV; $owner = getpwuid($uid); $gid = (stat)[5], $_ for @ARGV; $group = getgrgid($gid); print "chown $owner:$group \"@ARGV\"\n"' FILENAMEHERE
Run Code Online (Sandbox Code Playgroud)

更新2:使用lstat,它的工作原理!

linux perl uid

2
推荐指数
1
解决办法
2209
查看次数

标签 统计

linux ×1

perl ×1

uid ×1