Android Can';触摸屏';工作和';mkdir';失败?
在目录中,是否会出现Android Can';触摸屏';工作和';mkdir';失败?,android,unix,mkdir,inode,terminal-emulator,Android,Unix,Mkdir,Inode,Terminal Emulator,在目录中,是否会出现touch工作而mkdir失败的情况 我知道这两个调用都涉及到写入父目录的inode。因此,如果touch工作,它是否自动意味着inode是可写的,因此,mkdir不可能失败 这是Android(我只听到一个报告,实际上没有看到这个案例),命令是从/system目录下的终端仿真器运行的(在请求su之后),但在我看来这没有什么区别 编辑: mkdir因“权限被拒绝”而失败。我可以想出几种方法来实现这一点: 1) 如果已达到目录中子目录的最大数量(通常约32000个),您将无法
touch
工作而mkdir
失败的情况
我知道这两个调用都涉及到写入父目录的inode
。因此,如果touch工作,它是否自动意味着inode是可写的,因此,mkdir
不可能失败
这是Android(我只听到一个报告,实际上没有看到这个案例),命令是从/system
目录下的终端仿真器运行的(在请求su
之后),但在我看来这没有什么区别
编辑:
mkdir因“权限被拒绝”而失败。我可以想出几种方法来实现这一点: 1) 如果已达到目录中子目录的最大数量(通常约32000个),您将无法
mkdir
,但可以触摸文件
2) 如果磁盘空间非常少,您将无法mkdir
,因为它需要4K,但您可以触摸文件。我可以想出几种方法来实现这一点:
1) 如果已达到目录中子目录的最大数量(通常约32000个),您将无法mkdir
,但可以触摸文件
2) 如果磁盘空间非常少,您将无法mkdir
,因为它需要4K,但您可以触摸文件。也许您没有父目录的写入权限?如果您拥有目录中的现有文件或对这些文件具有写入权限,您仍然可以触摸目录中的现有文件。(但是,对不存在的文件调用touch仍将失败,因为该目录是只读的。)
父目录上的stat
和touch
ed文件的输出是什么?也许您没有父目录的写入权限?如果您拥有目录中的现有文件或对这些文件具有写入权限,您仍然可以触摸目录中的现有文件。(但是,对不存在的文件调用touch仍将失败,因为该目录是只读的。)
父目录上的stat
和touch
ed文件的输出是什么?感谢您的回复!我认为这两件事都没有发生。没有其他方法吗?还有,为什么mkdir会占用更多的空间?由于额外的元数据,空目录比空文件占用更多的空间。感谢您的回复!我认为这两件事都没有发生。没有其他方法吗?还有,为什么mkdir会占用更多的空间?由于额外的元数据,空目录比空文件占用更多的空间。名称是否正在使用touch
不介意文件是否存在,在这种情况下,它只更新时间戳<另一方面,code>mkdir
总是尝试创建一个新目录,如果该名称已被现有文件或目录使用,则会失败。@user4815162342其中没有其他目录。尝试了几个随机名称。@user4815162342 mkdir失败,权限被拒绝。该名称正在使用吗touch
不介意文件是否存在,在这种情况下,它只更新时间戳<另一方面,code>mkdir
总是尝试创建一个新目录,如果该名称已被现有文件或目录使用,则会失败。@user4815162342其中没有其他目录。尝试了几个随机名称。@user4815162342 mkdir失败,权限被拒绝。我需要检查一下。但是如果我没有对父级的写入权限,mkdir不是也会失败吗?但是你说mkdir确实失败了。或者,如果您的意思是触摸,则不需要对父级具有写入权限即可触摸其中的文件。我自己也刚测试过。哎呀,我是说触摸。我刚刚测试了它,当我从父级删除写权限时,我不能触及其中的文件,这是有意义的,因为目录inode无法写入。怎么会让你这么做?!啊,我应该说得更清楚。您可以触摸目录中的现有文件,因为它只需要更新其访问时间,而不需要创建新文件。我将编辑我的答案以反映这一点。+1这是有意义的。但在本例中,没有该名称的现有文件,因此我正在编写一个新文件。我需要检查它。但是如果我没有对父级的写入权限,mkdir不是也会失败吗?但是你说mkdir确实失败了。或者,如果您的意思是触摸,则不需要对父级具有写入权限即可触摸其中的文件。我自己也刚测试过。哎呀,我是说触摸。我刚刚测试了它,当我从父级删除写权限时,我不能触及其中的文件,这是有意义的,因为目录inode无法写入。怎么会让你这么做?!啊,我应该说得更清楚。您可以触摸目录中的现有文件,因为它只需要更新其访问时间,而不需要创建新文件。我将编辑我的答案以反映这一点。+1这是有意义的。但在本例中,没有该名称的现有文件,因此我正在编写一个新文件。