You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何`file ./-`可正常运行但`file .-`无法找到文件?

为何file ./-可正常运行但file .-无法找到文件?

其实这背后是Linux命令行解析参数的逻辑在搞鬼,我给你掰扯清楚:

  • 首先,大多数Linux命令默认把以-开头的字符串当成命令的选项(比如ls -l里的-l),而不是文件名。所以直接敲file -的话,命令会以为你在传选项,不是要查看名为-的文件。
  • 为什么./-能行?因为./是明确的当前目录路径标识,后面跟的-会被当成该目录下的文件名。命令看到参数是以路径开头的,就不会把它识别为选项,而是去当前目录查找叫-的文件,自然能成功。
  • 那.-为啥不行?因为这里的.和-是连在一起的,系统会把整个.-当作一个完整的文件名去查找,但你的文件实际叫-,根本不存在.-这个文件,所以会报错找不到。简单来说,.在这里不是路径标识,而是文件名的一部分了。

你可以做个小实验验证:敲touch .-创建一个名为.-的文件,再执行file .-,就能正常显示这个文件的信息了,这也能反过来印证上面的逻辑~

备注:内容来源于stack exchange,提问作者gooter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 11:33:03