看起来像recursion标志chown不会在隐藏的目录或文件上工作。 有没有简单的解决方法?
我很确定-R
标志确实有效 – 无论如何它总是对我有用。 什么是行不通的,在我的命令行使用中,早就绊了我一眼,就是在带有隐藏文件/目录的目录中使用*
。 这样做
$ chown -R /home/user/*
不会做隐藏的文件和目录。 但是,如果你跟着它
$ chown -R /home/user/.[^.]*
那么你会做所有的隐藏文件,(但不是.
或..
作为/ /home/user/.*
会做)。 说了这么多,我会期待的
$ chown -R /home/user
获取/home/user
所有隐藏文件和目录 – 当然这也会改变目录本身的权限,这可能不是你想要的。
“chown -R”的作品,但另一种select将使用查找。
find /path/to/dir -exec chown USER {} \;
我相信下面的命令应该为此工作
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
您可以暂时更改dotglob
属性以展开。 文件,然后恢复它。
shopt -s dotglob; chown -R user:group FOLDER; shopt -u dotglob
更多关于dotglob
可以在这里find
另外,如果你像我一样,你可能会从当前目录中运行chown。 我习惯于像这样运行它: chown rails.rails -R *
。 简单地将星号改为点(当前目录的简写)如下: chown rails.rails -R .
带来所有隐藏的目录。
你可以做类似的事情
for i in `ls -A`;do chown -R user:group $i;done
-A
( 大写 -A
A)很重要,因为它排除了'。' 和'..'