一张图片胜过一千个文字,所以我想从以下内容开始:
从图像中您可以看到我有大约 500GB 的硬盘。文件系统是ext4。在这个 500GB 硬盘上,我有一个超过 74TB 的文件。
我很想知道这是如何可能的(显然是某种类型的光盘损坏),但更重要的是我想知道该文件是否可以安全删除,rm .npmignore
或者是否有其他方法可以删除它这同样有效。
我主要担心会破坏磁盘上不可能的文件开始后的数据。
出于好奇,该文件被埋在路径下的存储库中node_modules/bower/node_modules/request/node_modules/qs/.npmignore
。将文件移出目录并执行 后git checkout .npmignore
,我发现该文件确实是一个文本文件(废话),而且实际上小于 700 字节。
答案1
您的文件系统不太可能被损坏。与大多数 Unix 文件系统一样,Ext4fs 支持稀疏文件,即文件的某些块不受任何物理介质支持,并且按照惯例,读取时返回的块仅包含空值(零)。
删除稀疏文件并不代表特定的风险,但事实上它可能包含某些进程或人员不希望丢失的数据。
您可以使用该strings
命令来了解稀疏文件包含的实际负载。
如果您确实怀疑您的文件系统已损坏,那么找出问题的最佳方法是卸载并对其进行 fsck。
编辑:根据您对自己问题的最后评论,看来您的文件系统毕竟已损坏。删除文件或在文件系统上执行任何显示损坏迹象的操作都是有风险的,并且可能会进一步损坏文件。我强烈建议尽快卸载它并执行 afsck
以确保其他元数据没有损坏。
答案2
删除文件应该是“安全”的;它是某种配置文件,告诉 npm 当您使用 npm 执行任何操作时要忽略哪些文件和模式。
至于要不要删除,就看你自己了。它可能有一个有用的目的。也许可以对其进行cat,看看它包含什么,然后从那里做出判断。
正如 @jordanm 指出的,该文件实际上并不是 47TB。
答案3
正如 Wumpus Q. Wumbley 指出的那样,要么是一个损坏的字节,要么是一个巨大的巧合。我决定硬着头皮删除该文件,过程很顺利,周围的文件没有明显损坏。