文件存在于目录中,但无法访问

文件存在于目录中,但无法访问

我能够使用 在目录列表中看到一个文件,ls -lh文件大小为 75kb。但是,当我尝试使用 查看文件cat或使用 移动文件时mv,我得到的是No such file or directory

该文件似乎还具有0 hardlink如中所见的功能ls -lh。文件系统是cifs

file <filename>给出<filename>: writable, executable, regular file, no read permission。理想情况下,它应该是给出<filename>:data作为输出。

输出ls -lh 在此处输入图片描述

输出cat <filename>file <filename> 在此处输入图片描述

我该如何修复此问题并访问该文件?

答案1

似乎 0 硬链接可能是问题所在。您使用cat该文件时遇到的问题抛出同样的错误(请参阅“删除父文件”)与使用cat孤立链接类似。链接仅保留权限和所有权,因此没有实际的文件内容cat。CIFS 过去曾遇到过硬链接问题。

也可能只是权限不当:尝试sudo在命令前插入或chmod使用更改文件权限。(引用自其他评论)

如果你这样做find / -xtype l,它将列出所有断开的链接(你可以将 / 更改为你的工作目录)。至于获取文件内容,你可以参考这里

答案2

问题是,你运行的是什么发行版,你提到这是一个 cifs 共享?该文件是否由连接到 NAS 的任何其他系统打开?我知道 Windows 有一个坏习惯,就是不允许您读取/访问正在使用的文件(至少在 WSL 上)

$ ls -lash Default/Network//Cookies
2.3M -rwxrwxrwx 1 period period 2.3M Jan 17 21:30 Default/Network//Cookies

$ file -s !$
file -s Default/Network//Cookies
Default/Network//Cookies: writable, executable, regular file, no read permission

$ sudo cat !$
sudo cat Default/Network//Cookies
cat: Default/Network//Cookies: Permission denied

如果该文件正在被另一个系统使用,那么这很可能就是导致问题的原因,尤其是当所述另一个系统是 Windows 系统时。

相关内容