似乎带有递归标志的 chown 对隐藏目录或文件不起作用。有没有简单的解决方法?
答案1
我非常确定这个-R
标志确实有效 - 对我来说它一直有效。不起作用的,以及在我早期使用命令行时让我犯错的,是*
在有隐藏文件/目录的目录中使用。所以做
$ chown -R /home/user/*
不会执行隐藏文件和目录。但是如果你使用
$ chown -R /home/user/.[^.]*
然后你将执行所有隐藏文件,(但不是.
或..
像/home/user/.*
会做的那样)。说了这么多,我期望
$ chown -R /home/user
获取里面的所有隐藏文件和目录/home/user
- 尽管这当然也会改变目录本身的权限,但这可能不是您想要的。
答案2
我相信以下命令应该可以解决这个问题
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
答案3
“chown -R” 有效,但另一种方法是使用 find。
find /path/to/dir -exec chown USER {} \;
答案4
您可以dotglob
暂时更改属性以扩展 . 文件,然后将其恢复。
shopt -s dotglob; chown -R user:group FOLDER; shopt -u dotglob
更多详情dotglob
可参阅这里