关于系统中名为-z的octet-stream文件的疑问
关于系统中名为-z的octet-stream文件的疑问
嘿,这个问题我碰到过类似的情况,来给你一步步拆解清楚!
首先解决最头疼的「打不开」问题:
大多数命令行工具(包括vim)都会把以-开头的字符串当成命令选项,而不是文件名。比如你输入vim -z,vim会误以为你要启用某个叫-z的参数(但vim根本没这个选项),自然会报错。要打开它其实很简单,两种方法通用所有命令行工具:
- 直接用绝对路径调用:
vim /home/user/-z,明确告诉工具这是个文件路径,不是选项 - 用
--作为分隔符,告诉命令后面的内容都是文件名:vim -- -z,这个小技巧能秒杀所有「文件名以-开头」的问题
接下来聊聊这个文件本身:
octet-stream只是系统给它标的通用二进制流类型,意思是系统没法识别它的具体格式——它可能是文本文件,也可能是纯二进制数据,这个标签只能说明它没有明确的后缀或标识- 只有root能访问,说明它是root用户创建的:可能是某个系统工具运行时生成的临时缓存、某个脚本的输出文件,也可能是root误操作(比如命令参数写错了)意外生成的垃圾文件
如果你想搞清楚它到底是什么,切换到root用户(比如sudo -i)后可以试试这些排查步骤:
- 先看内容:用
cat -- -z或者less -- -z,如果是文本就能直接读;二进制的话可能有乱码,但说不定能找到一些可读的字符串(比如程序名、日志片段) - 精准识别类型:
file -b /home/user/-z,这个命令会深入分析文件内容,比系统标的octet-stream准确得多,能识别出很多隐藏的文件类型 - 查元信息找线索:
ls -l /home/user/-z能看到文件的创建/修改时间、大小,结合系统日志(比如/var/log/syslog或/var/log/auth.log)看看那个时间点root有没有运行过特殊命令,大概率能找到创建原因 - 检查是否被占用:
lsof /home/user/-z,如果有进程在使用它,那这个文件大概率是有用的,别随便删
如果最后确认这是个没用的垃圾文件,root权限下用rm -- -z或者rm /home/user/-z就能删掉,但删之前一定要再三确认哦!
备注:内容来源于stack exchange,提问作者Soda Party
相关产品推荐
相关产品推荐

