-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で使用できる 8 進数に変換しchmod、それらを各行の先頭に追加します。

たとえば、次の変換が行われます。

-rwxr-xr--
 7  5  4

-rwx-wx---
 7  3  0

この awk スクリプトは、スティッキー ビットまたは setuid ビットをサポートしていないことに注意してください。

于 2013-02-15T19:11:36.507 に答える