我在创建的脚本中有这一行
ls -l ../$_module.php | awk '{print $3}'
只打印出文件的所有者。是否可以将$3
分配给变量(让我们称之为_owner),这样我就可以运行了
脚本正在创建的文件上chmod $_owner $_con"Controller.php"
,因此$_con"Controller.php"
与$_module.php
具有相同的所有者?
答案 0 :(得分:4)
实际上,您希望chown(1)
而非chmod(1)
更改所有者。如果你在Linux上,你可能拥有的GNU chown
有一个漂亮的选项--reference=file
,它会将所有者更改为与引用文件中的所有者相同。
如果您坚持手动操作,或者chown
没有该选项,您可以将输出存储为变量并使用:
owner=$(some comand)
但请注意,ls
不保证稳定的输出,即您不应该依赖于格式。您可能希望使用stat
,如PaulProgrammer建议的那样。
答案 1 :(得分:3)
您真的希望chown
更改所有者,并且您可以使用stat -c %U /path/to/file
获取所有者的用户名。使用反引号,您可以将stat
的输出反馈到chown
的输入中:
chown `stat -c %U module.php` target.php