chmod - replicate user permissions to group/world

家住魔仙堡 提交于 2019-12-08 07:33:48

问题


I have a need to make some folders/files (recursive) have the same permissions as that of the user. So:

  • 0755 -> 0777
  • 0644 -> 0666

How can I do so? Perhaps a little secret command I do know of?

If there is no easy way then perhaps I would need to create a loop and test/assign. Ultimately I only need to deal with 3 types:

Folders should be 777, most files 666, executables 777.


回答1:


find can do the work of finding files with a given permission set and running the smallest possible number of chmod invocations necessary to cover them.

find . \
  '(' -perm -0700 -exec chmod 0777 '{}' + ')' -o \
  '(' -perm -0600 -exec chmod 0666 '{}' + ')'



回答2:


There is no command that does for you. You do need a little loop:

for file in $(find . -print)
do
  if [ -d $file -o -x $file ]; then
    chmod 777 $file
  else
    chmod 666 $file
  fi
done


来源:https://stackoverflow.com/questions/41248710/chmod-replicate-user-permissions-to-group-world

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!