Skip to content
Advertisement

octal to string – trouble

I just cannot seem to understand the solution to this problem given in an online course. I found the actual code that solves it, but I still don’t understand it. Could anyone explain to me a bit more in detail why this does what it does? I would be extremely grateful.

The permissions of a file in a Linux system are split into three sets of three permissions: read, write, and execute for the owner, group, and others. Each of the three values can be expressed as an octal number summing each permission, with 4 corresponding to read, 2 to write, and 1 to execute. Or it can be written with a string using the letters r, w, and x or – when the permission is not granted. For example: 640 is read/write for the owner, read for the group, and no permissions for the others; converted to a string, it would be: “rw-r—–” 755 is read/write/execute for the owner, and read/execute for group and others; converted to a string, it would be: “rwxr-xr-x” Fill in the blanks to make the code convert a permission in octal format into a string format. I am mostly confused about the line with the for loop – I just simply don’t understand it.

Soultion I found on the internet (which works correctly):

JavaScript

Advertisement

Answer

As I’m sure you’ve realized, each octal digit(oit? octit?) corresponds to a set of permissions given by the sum of the individual permissions.

JavaScript

We can derive this string by subtracting the value corresponding to each permission from our octal digit.

(6, '') -> (2, 'r') -> (0, 'rw') -> (0, 'rw-')

As for the looping line, since the octal variable is a 3-(octal)digit integer, we first convert it to a string, separate each character to get the individual octal digits, then convert them back to integers so we can process them. Instead of writing a separate statement for each of the operations, we use a list comprehension to generate the list of octal digits over which we will loop.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement