我cd
进入了一个包含大量文件的目录,确切地说有 40,948 个文件。当我发出命令时,ls
需要很长时间,在命令最终将结果打印到屏幕上之前,它告诉我一些文件的“ls:无法访问:没有这样的文件或目录”。
每次的文件名并不相同。当我执行ls -l
某些文件没有 posix 权限时,只是“??????”在文件名之前。
我尝试chown -R
该目录是因为我想更改组,并且我得到了“chown:无法访问”或“chown:更改所有权”+“:没有这样的文件或目录”的混合,甚至比我使用ls
.
这对我来说突出表明,我什至不知道 Linux 中的目录是否有目录,我认为目录可能已损坏。但结果总是不同的事实表明事实并非如此。
这可能是 /etc/security/limits.conf 中的“nofile”问题吗?
答案1
在我看来,它被其他进程大量使用。
收集您看到的信息不一定是原子的。它可能会获取文件名列表,然后查找文件上的信息(要么是长列表,要么是为输出着色)。如果在这两个操作之间删除文件,那么您将得到与您所描述的类似的输出。
答案2
这个长时间的中断是由于在获得输出之前对目录中的 40,000 多个文件进行排序造成的ls
。尝试ls -lU | more
(未排序)更接近奇怪的文件名。另一种选择是--show-control-chars
。