-6

我想了解这条线是如何工作的,不知道我是否明白了。

ls -l | awk '
{
  k=0;
  for (i=0;i<=8;i++)
    k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));
  if (k)
    printf("%0o ",k);
  print
}'

提前致谢。

4

1 回答 1

3

此代码将-rwxrwxrwx生成的标准权限样式转换ls -l为可与 一起使用的八进制数chmod,并将它们添加到每一行。

例如,它将进行以下转换:

-rwxr-xr--
 7  5  4

-rwx-wx---
 7  3  0

请注意,此 awk 脚本不支持粘性或 setuid 位。

于 2013-02-15T19:11:36.507 回答