【问题标题】:how to control directory permissions with matlab's mkdir command?matlab的mkdir命令如何控制目录权限?
【发布时间】:2016-03-30 09:08:10
【问题描述】:

matlab 的mkdir 命令似乎总是将权限设置为 755,并且该函数似乎不接受任何更改此设置的选项。

它甚至似乎不尊重 umask(umask 为 2 对应于权限 775 或 rwxrwxr-x)。

>> !umask
2
>> mkdir /tmp/test
>> ls -l /tmp/
drwxr-xr-x  2 username  groupname          6 Mar 30 10:51 test/

如果我只创建一个目录,那么在事后使用fileattrib 是相对微不足道的,但如果我创建一个子目录,例如/tmp/test1/test2 然后 matlab 的 mkdir 默认创建所有不存在的父目录。 (好像 -p 标志已为 mkdir 的 unix 版本设置。)如果我只想设置新目录的权限,似乎没有一种简单的方法来判断树的哪些部分是新的和旧的。

为了记录,我在 linux 上使用 R2014b。

【问题讨论】:

  • 我希望 Matlab 2016b 中有一个 sudo
  • 不能直接使用UNIX命令:>> !mkdir -p /tmp/test1/test2吗?
  • 我认为umask 的概念无论如何都不会映射到 Windows。你所做的一开始就不是可移植的。
  • Windows 安全模型无法与类似 POSIX 的系统相比。例如,没有与组/其他权限完全相同的权限,fileattrib 实际上会在 Windows 上为这些字段返回 NaN...就像我说的,umaskchmod 等是不可移植的。
  • en.wikipedia.org/wiki/File_system_permissionsunix.stackexchange.com/q/13554/1177。如果您有兴趣,还可以查看 Cygwin 如何解决此问题:cygwin.com/cygwin-ug-net/ntsec.html

标签: matlab file-permissions mkdir


【解决方案1】:

Maltlab 的最新版本可以使用fileattrib 命令以操作系统透明的方式修改权限。

【讨论】:

  • 目前这并没有为 Amro 提供的 cmets 添加任何内容。请扩展以使其成为有效答案。 (例如使用 fileattrib 的语法,它如何处理递归创建的目录等)
  • @craq 这会有所帮助,但我认为这会增加讨论,因为这是一个以前不存在的新界面。请注意人们声称不可能做到的讨论。好吧,他们现在错了。
猜你喜欢
  • 2021-04-16
  • 2022-01-22
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
相关资源
最近更新 更多