我正在使用savefig()
和saveas()
功能来保存.fig
和.jpg
文件。在 MATLAB(R2015a,Ubuntu 14.04,个人电脑,单一帐户)中。但是,正在生成的文件的所有者是 root。我希望所有者成为我的用户帐户。
我可以chown
在终端中使用以稍后获得所有权,但我希望直接从 MATLAB 发生,即在文件创建时。
而且,这个问题以前没有发生过。我刚刚重新安装了操作系统和所有软件,这种行为开始发生。
我正在使用savefig()
和saveas()
功能来保存.fig
和.jpg
文件。在 MATLAB(R2015a,Ubuntu 14.04,个人电脑,单一帐户)中。但是,正在生成的文件的所有者是 root。我希望所有者成为我的用户帐户。
我可以chown
在终端中使用以稍后获得所有权,但我希望直接从 MATLAB 发生,即在文件创建时。
而且,这个问题以前没有发生过。我刚刚重新安装了操作系统和所有软件,这种行为开始发生。
我已经弄清楚我做错了什么。
我正在使用 command 运行 MATLAB sudo matlab
,这就是为什么保存到磁盘的文件具有 root 所有权的原因。我以 root 身份运行 MATLAB 的原因是仅仅matlab
在终端中使用对我不起作用。特别是,MATLAB 给出了 JAVA 异常错误:“错误启动桌面”。为了解决这个错误,我必须获得 MATLAB 首选项目录的所有权,即~/.matlab/R2015a
. 我这样做是sudo chown -R username:username ~/.matlab/R2015a/
为了获得所有权。现在,我可以在没有 sudo 的情况下运行 MATLAB,并且生成的文件也拥有我的所有权。我使用以下链接来解决我的所有权问题:
感谢您的评论和回答。我想我应该做更多的研究。
我同意以前的用户的观点,这更有可能是用户启动 MATLAB 的问题。
解决此问题的一种快速而肮脏的方法是使用该system
命令。
system('chown user:group DIRTOSAVEDFILE');
或者
system(sprintf('chown %s:%s %s',USERSTRING, GROUPSTRING, SAVEDFILEDIR));
system
如果您计划分发此代码,请重新考虑使用该命令,因为该system
命令可以访问/bin/sh
(甚至可能具有 root 权限,具体取决于 MATLAB 的启动方式)。