我正在尝试在 Linux 上从我的 C 源代码创建一个文件。我正在使用命令dd
从文件中读取并通过创建文件将其写入文件。如果我对目标目录(将要创建文件的位置)没有执行权限(我有写入权限),则无法创建该文件。如果我同时具有写入和执行权限,则可以创建文件。
这是什么原因呢?
答案1
设置后,r、w 和 x 模式属性对文件和目录具有以下影响:
- r 属性(读权限):
文件:允许文件已打开和读。
目录:允许列出目录的内容。要检索有关包含文件或目录的任何信息,还必须设置执行属性。
- w 属性(写权限):
文件:允许写入或截断文件,但是此属性不允许重命名或删除文件. 删除或重命名文件的能力取决于按目录属性。
目录:允许创建、删除和重命名目录中的文件如果还设置了执行属性。
- x 属性(执行权限):
文件:允许将文件视为程序并执行。用脚本语言编写的程序文件还必须设置为可读才能执行。
目录:允许目录已输入,例如 cd 目录。
参考:Linux® 命令行 William E. Shotts, Jr.
我建议阅读这本书或 pdf 版本,您可以从以下链接下载:http://sourceforge.net/projects/linuxcommand/files/TLCL/13.07/TLCL-13.07.pdf/download
答案2
目录的执行位赋予您进入/遍历目录的可能性。因此,在您的情况下,创建文件也是先决条件(否则您可以进入文件)。