Display permissions string (drwxr-xr-x) in number format (i.e. 755).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
978 B

10 years ago
10 years ago
10 years ago
  1. seg1=$(echo $1 | cut -c1 -c2 -c3 -c4)
  2. seg2=$(echo $1 | cut -c5 -c6 -c7)
  3. seg3=$(echo $1 | cut -c8 -c9 -c10)
  4. owner=0
  5. group=0
  6. other=0
  7. # Is directory?
  8. if [[ $seg1 == *d* ]]; then
  9. echo "Directory"
  10. else
  11. echo "File"
  12. fi
  13. ###########################
  14. ######### OWNER ###########
  15. ###########################
  16. if [[ $seg1 == *r* ]]; then
  17. let "owner += 4"
  18. fi
  19. if [[ $seg1 == *w* ]]; then
  20. let "owner += 2"
  21. fi
  22. if [[ $seg1 == *x* ]]; then
  23. let "owner += 1"
  24. fi
  25. ###########################
  26. ######### GROUP ###########
  27. ###########################
  28. if [[ $seg2 == *r* ]]; then
  29. let "group += 4"
  30. fi
  31. if [[ $seg2 == *w* ]]; then
  32. let "group += 2"
  33. fi
  34. if [[ $seg2 == *x* ]]; then
  35. let "group += 1"
  36. fi
  37. ###########################
  38. ######### OTHER ###########
  39. ###########################
  40. if [[ $seg3 == *r* ]]; then
  41. let "other += 4"
  42. fi
  43. if [[ $seg3 == *w* ]]; then
  44. let "other += 2"
  45. fi
  46. if [[ $seg3 == *x* ]]; then
  47. let "other += 1"
  48. fi
  49. echo $owner$group$other
  50. exit 0