You need to enable JavaScript to run this app. 如何使用find命令搜索文件名包含前导横杠的文件及目录
优惠活动
大模型
产品
解决方案
定价
更多

如何使用find命令搜索文件名包含前导横杠的文件及目录

find命令搜索前导横杠文件名的解决方案

问题根因

你遇到的报错本质来自三个问题:

  • shell通配符*会先完成展开,你当前目录存在-x文件,find * -maxdepth 1 -type file展开后实际为find -x -maxdepth 1 -type file,find会把开头的-x识别为命令选项而非搜索路径,因此抛出非法选项错误。
  • 你将--放在命令末尾的写法无效,--的作用是终止后续内容的选项解析,放在末尾无法阻止前面展开的-x被识别为选项。
  • 额外的语法错误:find命令-type参数的普通文件取值为f,而非file,该写法也会触发报错。

可用解决方案(仅用find命令,无需其他工具)

方案1:显式指定搜索路径为当前目录(最推荐)

直接将搜索路径指定为./,完全规避通配符展开产生的前导横杠问题,命令如下:

# 仅搜索普通文件
find ./ -maxdepth 1 -type f

执行后会返回当前目录下所有普通文件,包含./-x和./x,符合需求。
如果需要同时搜索目录和文件,去掉-type f参数即可:

# 搜索当前目录下所有文件和目录
find ./ -maxdepth 1

方案2:将--放在通配符前终止选项解析

如果确实需要依赖通配符做前置匹配,可将--放在通配符前,让find把通配符展开的所有内容都识别为路径而非选项:

find -- * -maxdepth 1 -type f

该写法同样可以正确识别带前导横杠的文件名,返回-x和x的搜索结果。


内容的提问来源于stack exchange,提问作者Cyclonecode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 14:15:02