在终端我知道我可以
chown whatever:whatever .*
我想要做的是将用户名和组动态设置为当前域所有者而不是 root。是否有捷径可寻?
一些背景:我正在使用 Git 作为 root 推送到我的服务器,然后签出到 public_html。这使得任何新文件和目录都归 root:root 所有。我想在 hooks/post-receive 中添加一行以将所有者更改为域用户而不是 root,但如果我不需要,我不想显式指定域用户。
我能想到的简单点是
chown -R `stat . -c %u:%g` *
您也可以$(...)
在这里使用而不是反引号。
可能不完全是您想要做的,但这是在搜索有关将文件/文件夹设置为父母所有者的第一个线程。我通过“参考”开关实现了这一点。所以在子目录中然后运行:
chown * -Rv --reference=/PATH/TO/PARENT
这会将子目录的所有内容设置为您关心的任何参考文件,在我的情况下,我使用的是父目录。
这将递归地将所有文件和目录设置为当前目录的所有者/组。
#!/bin/ksh
OWNER=`ls -ld ./ | cut --delimiter=" " --fields="3"`
GROUP=`ls -ld ./ | cut --delimiter=" " --fields="4"`
chown -R $OWNER:$GROUP *
测试该命令以确保它适用于您的 Linux 风格。
#!/bin/ksh
OWNER=`ls -ld ./ | cut --delimiter=" " --fields="3"`
GROUP=`ls -ld ./ | cut --delimiter=" " --fields="4"`
echo $OWNER:$GROUP