未从Ruby中的HDD中删除的已删除文件
我在Ruby中删除文件时遇到了一个奇怪的情况,代码似乎报告正确,但物理文件没有从硬盘中删除。我可以在命令行上执行未从Ruby中的HDD中删除的已删除文件,ruby,file,delete-file,Ruby,File,Delete File,我在Ruby中删除文件时遇到了一个奇怪的情况,代码似乎报告正确,但物理文件没有从硬盘中删除。我可以在命令行上执行rm path/to/file,这很有效。我甚至可以打开Rails控制台和File.safe_取消文件链接,这也可以工作,它只是在我的Rails应用程序中,无法删除实际文件: def destroy Rails.logger.debug local_path #=> /Users/ryan/.../public/system/.../file.jpg Rails.logg
rm path/to/file
,这很有效。我甚至可以打开Rails控制台和File.safe_取消文件链接,这也可以工作,它只是在我的Rails应用程序中,无法删除实际文件:
def destroy
Rails.logger.debug local_path #=> /Users/ryan/.../public/system/.../file.jpg
Rails.logger.debug File.exist?(local_path) #=> true
File.safe_unlink(local_path)
Rails.logger.debug File.exist?(local_path) #=> false
# yet the physical file actually STILL exists!
end
物理文件在Git repo中(repo存储在/public/system/)有什么问题吗?我已经尝试使用RubyGitGem使用它提供的rm命令删除该文件,但这也不能删除该文件
我在测试期间打开了所有文件的权限,但仍然没有任何功能。我还用File.writable?(local_path)确认了这一点,该文件返回true
你知道为什么它会阻止删除该文件吗?你检查过该目录的权限了吗?删除是一种目录写入操作,而不是文件写入操作。(
rm
也会检查文件的perms,出于礼貌,询问您是否真的想这样做,如果文件是写保护的;但是如果目录不可写,它会断然拒绝。)您检查过目录的权限了吗?删除是一种目录写入操作,而不是文件写入操作。(rm
也会检查文件的烫发,出于礼貌,问你是否真的想这样做,如果文件是写保护的;但是如果目录不可写,它会断然拒绝。)好的,我想我自己也要面对现实了。我从来不知道这是目录级权限,谢谢!好吧,我想我只是把脸藏起来了。我从来不知道这是目录级权限,谢谢!