我正在使用savefig()
和saveas()
函数来保存.fig
和.jpg
文件或分辨率。在MATLAB(R2015a,Ubuntu 14.04,个人电脑,单帐户)。但是,正在生成的文件的所有者是root。我希望所有者成为我的用户帐户。用MATLAB保存带有用户所有权的文件
我可以在终端中使用chown
以后获得所有权,但我希望直接从MATLAB发生,即在文件创建时。
此外,这个问题以前没有发生过。我刚刚安装了操作系统和所有软件,并且这种行为开始发生。
我正在使用savefig()
和saveas()
函数来保存.fig
和.jpg
文件或分辨率。在MATLAB(R2015a,Ubuntu 14.04,个人电脑,单帐户)。但是,正在生成的文件的所有者是root。我希望所有者成为我的用户帐户。用MATLAB保存带有用户所有权的文件
我可以在终端中使用chown
以后获得所有权,但我希望直接从MATLAB发生,即在文件创建时。
此外,这个问题以前没有发生过。我刚刚安装了操作系统和所有软件,并且这种行为开始发生。
我同意以前的用户,这更可能是用户启动MATLAB开始的问题。
解决此问题的一种快速且肮脏的方法是使用system
命令。
system('chown user:group DIRTOSAVEDFILE');
或
system(sprintf('chown %s:%s %s',USERSTRING, GROUPSTRING, SAVEDFILEDIR));
,如果你打算为system
命令可以访问到/bin/sh
分发此代码(也许甚至取决于MATLAB是如何开始root权限),请使用重新system
。
我已经弄清楚我做错了什么。
我使用命令sudo matlab
运行MATLAB,这就是为什么保存到磁盘的文件拥有root权限。之所以我以root身份运行MATLAB,是因为在终端中使用matlab
并不适合我。特别是,MATLAB给出了JAVA异常错误:“启动桌面时出错”。为了解决这个错误,我必须得到MATLAB的首选项目录的所有权,这个目录是~/.matlab/R2015a
。我做了sudo chown -R username:username ~/.matlab/R2015a/
以获得所有权。现在,我可以运行没有sudo的MATLAB,以及生成的文件也是我的所有权。我用下面的链接来解决我的问题所有权:
感谢您的意见和解答。我想我应该做更多的研究。
是不是导致文件权限启动该应用程序的用户的权限?那么为什么应用程序在根目录下运行?你如何启动Matlab?另外:你在哪里保存文件?你可以给你保存文件的目录的'ls -la'吗? –
在Ubuntu 14.04下运行MATLAB R2015b,我获得了文件的'-rw -r -r-'权限,属于普通用户,而不是root。当然,不要在root用户下运行MATLAB。 –
@GuntherStruyf我以root身份运行应用程序,特别是我使用命令'sudo matlab',这就是发生这种情况的原因。我正在写答案来澄清一切。 – user3342981