news 2026/1/24 1:43:52

【linux】Linux系统中双连字符 --的主要作用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【linux】Linux系统中双连字符 --的主要作用

在Linux系统中,双连字符--是一个特殊的命令行参数,主要有以下作用:

1.核心作用:选项终止符

--表示“选项结束”,后面即使以-开头的字符串也不会被解释为选项,而是作为普通参数处理。

2.具体作用场景

场景一:防止参数被误解为选项

# 删除一个名为 "-f" 的文件(不使用 -- 会出错)rm-f# 错误:-f 被解释为 rm 的强制删除选项rm---f# 正确:删除名为 "-f" 的文件

场景二:明确分隔命令选项和参数

3.结合示例解释

示例1:bear -- make

# bear 是一个生成编译数据库的工具bear --makeclean all

解析:

  • bear本身有自己的命令行选项
  • --表示 bear 的选项到此结束
  • make clean all不被 bear 解析为自身的选项,而是作为要执行的命令
  • 等价于bear运行make clean all命令并记录编译过程

对比:

# 不使用 --bear-ocompile_commands.jsonmake# 这里 make 仍可能被误解释为 bear 的选项# 使用 -- 更安全bear-ocompile_commands.json --make# 明确:-- 之后都是给 make 的参数

示例2:docker run

# 运行一个容器并执行特定命令dockerrun-it--rmubuntu:20.04 --ls-la

解析:

  1. docker run -it --rm:docker 命令的选项
  2. ubuntu:20.04:镜像名
  3. --关键分隔符,表示 docker 选项结束
  4. ls -la:容器内要执行的命令(而不是 docker 的选项)

更复杂的例子:

# 运行一个服务并传递参数dockerrun-d-p8080:80 nginx--help# 问题:--help 可能被 docker 或 nginx 误解?# 正确做法:明确分隔dockerrun-d-p8080:80 nginx ----help# 第一个 -- 给 docker,第二个 -- 给 nginx?# 实际上这里只需要一个 --

实际更常见的 docker 用法:

# 传递参数给容器内的应用dockerrun-itnode:14--eval"console.log('Hello')"# 可能出错:--eval 被 docker 误解# 正确:使用 -- 分隔dockerrun-itnode:14node--eval"console.log('Hello')"# 或dockerrun-itnode:14 --node--eval"console.log('Hello')"

4.特殊注意事项

--情况

有些命令支持多层--

# ssh 的 ProxyCommand 中使用ssh-oProxyCommand='ssh gateway -- nc %h %p'-- user@server --ls# 第一个 -- 结束 ssh 客户端的选项# 第二个 -- 传递给远程服务器的命令

shell 内置命令

# 在 shell 中设置位置参数set-- arg1 arg2-option# -- 确保后面的 -option 不被解释为 set 命令的选项

5.最佳实践建议

  1. 编写脚本时:处理用户输入时使用--更安全
#!/bin/bash# 安全处理可能以 - 开头的文件名forfilein"$@";doprocess_file --"$file"done
  1. 传递复杂命令时:使用--明确边界
# 清晰明确time--ls--color=auto-la-- -special-file

总结

--是一个重要的命令行约定,它:

  • 提高安全性:防止恶意文件名(如-rf)被误执行
  • 增加清晰度:明确区分命令选项和参数
  • 增强兼容性:处理各种边缘情况
  • 遵循 POSIX 标准:被大多数命令行工具支持

在编写脚本或复杂命令链时,合理使用--能让命令更健壮、更易理解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/17 12:26:49

三维EKF实现无人机高精度悬停控制

目录 1. 三维 EKF 设计 状态向量 状态方程(预测) 2. 观测方程(更新) GPS 观测矩阵: 光流观测矩阵: 气压计观测矩阵: 3. 代码实现(STM32 HAL 库) 4. 集成到无人机…

作者头像 李华
网站建设 2026/1/19 6:56:47

虾皮店铺页面如何优化

在Shopee经营店铺时,卖家常常需要依据商品类目与店铺配置来增加产品曝光,这使得优化店铺页面变得十分重要。那么具体可以从哪些方面着手改进呢? 1、店铺头像 头像最好与销售品类相关,并符合当地审美偏好,设计应鲜明、…

作者头像 李华
网站建设 2026/1/8 4:44:32

YOLOv8 Panoptic Segmentation全景分割实现

YOLOv8 全景分割实现:从镜像部署到工业级应用 在自动驾驶、智能监控和机器人视觉等前沿领域,对场景的理解早已不再满足于“图中有几辆车”这样的粗粒度判断。人们需要的是更精细的感知能力——比如,“哪一辆车挡住了行人”,“每个…

作者头像 李华
网站建设 2026/1/22 6:18:03

YOLOv8 MAE掩码自编码器预训练方案

YOLOv8 MAE掩码自编码器预训练方案 在工业质检、医疗影像分析等实际场景中,一个普遍存在的困境是:高质量标注数据稀缺而昂贵,但无标签图像却大量存在。比如一条自动化产线每天能拍摄数万张产品照片,真正被打上“缺陷”标签的可能不…

作者头像 李华
网站建设 2026/1/22 10:01:49

laravel基于PHP的“绿上优选网站”绿色商品网上环保商城的设计与制作vue

目录具体实现截图项目介绍论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持Python(flask,django)、…

作者头像 李华
网站建设 2026/1/22 12:10:12

小程序三端校园宿舍小卖部商城系统_p032l5o9 人脸识别

目录 已开发项目效果实现截图关于博主开发技术介绍 核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 已…

作者头像 李华