chown 子文件夹与当前文件夹的所有者和组

Jan*_*nkt 8 permissions command-line chown

在 bash 脚本中,我想递归地 chown 任意文件夹的所有子文件夹与该给定文件夹的用户和组所有者。

我的方法就像使用 stat -c "%U %G" .

但这仅返回一个模式 username[whitespace]groupname

当然,我可以尝试不同的工具来用 a 替换空格,:但如果有的话,我更愿意使用更“内置”的方式,将当前所有权应用于子文件夹。

Zan*_*nna 8

您实际上不需要解析输出来删除空格 - 您在命令中添加了它!首先,您可以随意格式化它(使用chown's 冒号语法):

$ stat -c "%U:%G" .
zanna:unicorns
Run Code Online (Sandbox Code Playgroud)

所以只需将其传递给chown命令替换:

chown -R $(stat -c "%U:%G" .) .
Run Code Online (Sandbox Code Playgroud)


mur*_*uru 6

chown,像chmod,可以使用引用:

chown [OPTION]... --reference=RFILE FILE...

Change the owner and/or group of each FILE to OWNER and/or GROUP.  With
--reference, change the owner and group of each FILE to those of RFILE.
Run Code Online (Sandbox Code Playgroud)

所以:

chown --reference=/some/folder -R /some/folder
Run Code Online (Sandbox Code Playgroud)