find / -name ‘*.jar‘ 需要加上英文单引号 (shell 的通配符展开行为)

文章目录

      • 1. Shell 通配符展开(Glob Expansion)
      • 2. 有引号时的行为(推荐)
      • 3. 无引号时的行为
      • 4. 总结原因
      • 5. 推荐实践

root@iZuf67xiyefycct0a9rdi3Z:~# find / -name *.jar
find: paths must precede expression: o2o.jar
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]
root@iZuf67xiyefycct0a9rdi3Z:~# find / -name '*.jar'
/usr/share/java/gettext.jar
/usr/share/java/libintl.jar
/usr/share/ca-certificates-java/ca-certificates-java.jar
/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar
/usr/lib/jvm/java-8-openjdk-amd64/lib/sa-jdi.jar
/usr/lib/jvm/java-8-openjdk-amd64/lib/jconsole.jar
/usr/lib/jvm/java-8-openjdk-amd64/lib/dt.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/icedtea-sound.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/zipfs.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/sunec.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/sunpkcs11.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/nashorn.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jaccess.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/sunjce_provider.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/localedata.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/cldrdata.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/dnsns.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/management-agent.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/policy/unlimited/US_export_policy.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/policy/unlimited/local_policy.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/policy/limited/US_export_policy.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/policy/limited/local_policy.jar
/root/o2o.jar
/root/api-0.0.1-SNAPSHOT.jar
/root/backups/api-0.0.1-SNAPSHOT-2005121808.jar
/root/backups/api-0.0.1-SNAPSHOT-2011111456.jar
/root/backups/o2o-2110271358.jar
/root/backups/api-0.0.1-SNAPSHOT-2003171037.jar
/root/backups/o2o-2207041636.jar
/root/backups/o2o-2106231520.jar
/root/backups/api-0.0.1-SNAPSHOT-2003131851.jar
/root/backups/o2o-2107051533.jar
/root/backups/o2o-2110271357.jar
/root/backups/api-0.0.1-SNAPSHOT-1912101123.jar
/root/backups/o2o-2106211559.jar
/root/backups/o2o-2106110854.jar
/root/backups/api-0.0.1-SNAPSHOT-2011111449.jar
/root/backups/api-0.0.1-SNAPSHOT-2009300856.jar
/root/backups/o2o-2109261013.jar
/root/backups/o2o-2101211406.jar
/root/backups/api-0.0.1-SNAPSHOT-1912161556.jar
/root/backups/api-0.0.1-SNAPSHOT-1911211056.jar
/root/backups/api-0.0.1-SNAPSHOT-1910311824.jar
/root/backups/o2o-2203071836.jar
/root/backups/api-0.0.1-SNAPSHOT-1910151722.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141812.jar
/root/backups/api-0.0.1-SNAPSHOT-1910221142.jar
/root/backups/api-0.0.1-SNAPSHOT-2003251833.jar
/root/backups/api-0.0.1-SNAPSHOT-2003171241.jar
/root/backups/api-0.0.1-SNAPSHOT-1912271913.jar
/root/backups/o2o-2101261347.jar
/root/backups/api-0.0.1-SNAPSHOT-2003180826.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141712.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141735.jar
/root/backups/api-0.0.1-SNAPSHOT-2005131541.jar
/root/backups/o2o-2207071007.jar
/root/backups/o2o-2108121055.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141717.jar
/root/backups/api-0.0.1-SNAPSHOT-2009300858.jar
/root/backups/o2o-2207041512.jar
/root/backups/api-0.0.1-SNAPSHOT-2003261317.jar
/root/backups/o2o-2309180346.jar
/root/backups/api-0.0.1-SNAPSHOT-2011111457.jar
/root/backups/api-0.0.1-SNAPSHOT-1910151715.jar
/root/backups/o2o-2101211432.jar
/root/backups/api-0.0.1-SNAPSHOT-2005131727.jar
/root/backups/api-0.0.1-SNAPSHOT-2006131922.jar
/root/backups/api-0.0.1-SNAPSHOT-1911221029.jar
/root/backups/api-0.0.1-SNAPSHOT-2003250858.jar
/root/backups/api-0.0.1-SNAPSHOT-2008181644.jar
/root/backups/o2o-2209211031.jar
/root/backups/api-0.0.1-SNAPSHOT-2005131540.jar
/root/backups/api-0.0.1-SNAPSHOT-1912271919.jar
/root/backups/api-0.0.1-SNAPSHOT-1912271629.jar
/root/backups/api-0.0.1-SNAPSHOT-1912040956.jar
/root/backups/o2o-2107061034.jar
/root/backups/o2o-2107271720.jar
/root/backups/api-0.0.1-SNAPSHOT-1912041413.jar
/root/backups/api-0.0.1-SNAPSHOT-1911201606.jar
/root/backups/api-0.0.1-SNAPSHOT-1912101143.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141807.jar
/root/backups/o2o-2206161029.jar
/root/backups/o2o-2106211550.jar
/root/backups/api-0.0.1-SNAPSHOT-2002251723.jar
/root/backups/api-0.0.1-SNAPSHOT-2011121414.jar
/root/backups/api-0.0.1-SNAPSHOT-1911042213.jar
/root/backups/o2o-2111261253.jar
/root/backups/api-0.0.1-SNAPSHOT-1910221128.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141914.jar
/root/backups/api-0.0.1-SNAPSHOT-1912300926.jar
/root/backups/api-0.0.1-SNAPSHOT-2003300911.jar
/root/backups/api-0.0.1-SNAPSHOT-1910151132.jar
/root/backups/api-0.0.1-SNAPSHOT-2005131556.jar
/root/backups/api-0.0.1-SNAPSHOT-1912271859.jar
/root/backups/api-0.0.1-SNAPSHOT-2005131609.jar
/root/backups/api-0.0.1-SNAPSHOT-1910151058.jar
/root/backups/api-0.0.1-SNAPSHOT-2003251742.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141937.jar
/root/backups/api-0.0.1-SNAPSHOT-1910141821.jar
/root/backups/api-0.0.1-SNAPSHOT-1912040939.jar
/root/backups/api-0.0.1-SNAPSHOT-2004071550.jar
/root/backups/api-0.0.1-SNAPSHOT-2005131615.jar
/root/backups/api-0.0.1-SNAPSHOT-1912161610.jar
/root/backups/api-0.0.1-SNAPSHOT-1912271720.jar
/root/backups/o2o-2207051114.jar
/root/backups/api-0.0.1-SNAPSHOT-1912101122.jar
/root/backups/api-0.0.1-SNAPSHOT-2003251728.jar
/root/backups/api-0.0.1-SNAPSHOT-2005131754.jar
/root/backups/o2o-2107151440.jar
/root/backups/api-0.0.1-SNAPSHOT-1912040948.jar
/root/backups/api-0.0.1-SNAPSHOT-2003171027.jar
/root/backups/api-0.0.1-SNAPSHOT-1910211009.jar
/root/backups/api-0.0.1-SNAPSHOT-1912161611.jar

在使用 find / -name '*.jar' 时,是否需要加引号取决于 shell 的通配符展开行为。让我们详细分析一下为什么有时需要加引号,有时不需要:

1. Shell 通配符展开(Glob Expansion)

  • 在执行 find 命令之前,shell 会先处理命令行中的通配符(如 *?)。
  • 如果当前目录下存在与 *.jar 匹配的文件,shell 会将 *.jar 展开为匹配的文件列表(如 file1.jar file2.jar),然后传递给 find 命令。
  • 如果没有匹配文件,shell 会将 *.jar 原样传递给 find

2. 有引号时的行为(推荐)

  • 命令:find / -name '*.jar'
  • 效果:引号阻止了 shell 对 *.jar 进行通配符展开,find 接收到的参数就是 *.jar,并按预期查找所有 .jar 文件。
  • 推荐原因:无论当前目录是否存在匹配的文件,find 都会搜索文件名匹配 *.jar 的文件,行为更稳定。

3. 无引号时的行为

  • 命令:find / -name *.jar
  • 效果
    • 如果当前目录有匹配的文件(如 file1.jarfile2.jar),shell 会将 *.jar 展开为 file1.jar file2.jar,变成:
      find / -name file1.jar file2.jar
      
      此时 find 可能会报错或只查找第一个文件。
    • 如果当前目录没有匹配的文件*.jar 原样传递给 find,效果等同于加引号,正常执行。

4. 总结原因

  • 不加引号时:依赖于当前目录是否有匹配的文件:
    • 有匹配文件时,shell 展开,行为可能不符合预期。
    • 无匹配文件时,find 正常执行。
  • 加引号时:始终按预期查找 *.jar 文件,不受当前目录影响。

5. 推荐实践

始终给通配符加引号,例如:

find / -name '*.jar'

这样可以避免 shell 提前展开通配符,确保 find 按预期运行。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/929248.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一次奇妙的getshell之旅

1. 资产收集时发现一个网站: https://xxxxxxxxxx/ischool/publish_page/0/ 发现存在管理员登陆: 这里之前在该旁站找到一个SQL注入,然后找到的这个账户密码(这里如何从SQL注入找到账户密码前借鉴前面的报告。): 账号&…

QT6_UI设计——设置控件背景

1、右击选择控件 2、选择背景 color 颜色 background-color 背景颜色 alternate-background-color 交替背景颜色 border-color 边框颜色 border-top-color 边框顶端 border-right-color 边框右边 border-bottom-color 边框底部 border-left-color 边框左边 gridline-color 网…

第十三章 Linux计划任务

注意:进公司和有公司成员离职,一定要问计划任务,防止别人搞破坏背锅 13.1 一次性计划任务(atd服务) 1 安装 atd 服务 yum install -y at systemctl enable atd systemctl start atd ## 启动atd服务 systemctl status atd ## 查看atd服务…

Day28 买卖股票的最佳时机 跳跃游戏 跳跃游戏 II K 次取反后最大化的数组和

贪心算法 part02 122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 求最大利润 将每天的正利润加和 public int maxProfit(int[] prices) {int totalPrices 0;for(int i0;i<prices.length;i){if(i<prices.length-1&&prices[i1]>prices[…

Mac苹果电脑 java前后端开发环境及软件安装教程

本文记录我初次使用macOS系统&#xff0c;m4 mini安装开发软件及环境的全过程&#xff0c;希望能帮助到你&#xff0c;好用的请点赞评论收藏增加热度&#xff0c;让更多Mac小白轻松体验开发&#xff0c;20241129 …

ubuntu20.04安装OpenPcdet,CUDA版本11.8,显卡4090

本文参考这2篇文章的内容&#xff1a;https://blog.csdn.net/jin15203846657/article/details/122735375#comments_25352667 https://zhuanlan.zhihu.com/p/642158810 记录了自己安装OpenPcdet的过程。 OpenPcdet的安装需要cuda和pytorch版本严格关联。本例的CUDA版本&#xf…

Clickhouse MergeTree存储引擎

文章目录 MergeTree特点MergeTree核心参数- ORDER BY- PARTITION BY- PRIMARY KEY- SAMPLE BY- TTL- SETTINGS- index_granularity- index_granularity_bytes- min_index_granularity_bytes- enable_mixed_granularity_parts- use_minimalistic_part_header_in_zookeeper- min_…

将word里自带公式编辑器编辑的公式转换成用mathtype编辑的格式

文章目录 将word里自带公式编辑器编辑的公式转换成用mathtype编辑的格式MathType安装问题MathType30天试用延期MathPage.wll文件找不到问题 将word里自带公式编辑器编辑的公式转换成用mathtype编辑的格式 word自带公式编辑器编辑的公式格式&#xff1a; MathType编辑的格式&a…

期权懂|期权新手指南——个股期权操作方式详细解释

期权小懂每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 期权新手指南——个股期权操作方式详细解释 个股期权的操作方式相对复杂&#xff0c;但可以分为场内交易和场外交易两大类。 场内个股期权交易&#xff1a;是指在证券交易所上市交…

12,攻防世界simple_php

simple_php 题目来源:Cyberpeace-n3k0 题目描述: 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 进入靶场 这段PHP代码是一个简单的web应用示例&#xff0c;让我们逐步分析这段代码&#xff1a; show_source(__FILE__);&#xff1a;这行代码会显示当前文件的…

泷羽sec专题课笔记-- Linux作业--开机自启动方法以及破解

本笔记为 泷羽sec 《红队全栈课程》学习笔记&#xff0c;课程请可自行前往B站学习&#xff0c;课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等&#xff0c;请使用该课程、本笔记以及课程和笔记中提及工具的读者&#xff0c;遵守网络安全相关法律法规&#xff0c;切勿…

深度学习之pth转换为onnx时修改模型定义‌

文章目录 概述实现步骤python代码 概述 在将PyTorch模型&#xff08;.pth文件&#xff09;转换为ONNX格式时&#xff0c;通常的转换过程是通过torch.onnx.export函数来实现的。这个过程主要是将PyTorch模型的计算图导出为ONNX格式&#xff0c;以便在其他框架或环境中使用。 在…

LinuxTCP编程详解

目录 一、创建套接字 二、绑定套接字 示例 三、监听套接字 四、等待套接字 五、服务器端示例 六、连接套接字 七、客户端示例 八、Send和Recv C/S模式&#xff1a;Client客户端、Server服务器 TCP编程基于socket套接字实现&#xff0c;因此也习惯称为Socket编程 一、…

深入解析级联操作与SQL完整性约束异常的解决方法

目录 前言1. 外键约束与级联操作概述1.1 什么是外键约束1.2 级联操作的实际应用场景 2. 错误分析&#xff1a;SQLIntegrityConstraintViolationException2.1 错误场景描述2.2 触发错误的根本原因 3. 解决方法及优化建议3.1 数据库级别的解决方案3.2 应用层的解决方案 4. 友好提…

「Mac畅玩鸿蒙与硬件41」UI互动应用篇18 - 多滑块联动控制器

本篇将带你实现一个多滑块联动的控制器应用。用户可以通过拖动多个滑块&#xff0c;动态控制不同参数&#xff08;如红绿蓝三色值&#xff09;&#xff0c;并实时显示最终结果。我们将以动态颜色调节为例&#xff0c;展示如何结合状态管理和交互逻辑&#xff0c;打造一个高级的…

数字IC前端学习笔记:脉动阵列的设计方法学(以串行FIR滤波器为例)

相关阅读数字IC前端_日晨难再的博客-CSDN博客https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 引言 脉动结构&#xff08;也称为脉动阵列&#xff09;表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地…

图片预处理技术介绍4——降噪

图片预处理 大家好&#xff0c;我是阿赵。   这一篇将两种基础的降噪算法。   之前介绍过均值模糊和高斯模糊。如果从降噪的角度来说&#xff0c;模糊算法也算是降噪的一类&#xff0c;所以之前介绍的两种模糊可以称呼为均值降噪和高斯降噪。不过模糊算法对原来的图像特征的…

【数据中心建设资料】数据中心安全建设解决方案,数据中心整理解决方案,数据中心如何做到安全保障,数据中台全方案(Word全原件)

第一章 解决方案 1.1 建设需求 1.2 建设思路 1.3 总体方案 信息安全系统整体部署架构图 1.3.1 IP准入控制系统 1.3.2 防泄密技术的选择 1.3.3 主机账号生命周期管理系统 1.3.4 数据库账号生命周期管理系统 1.3.5 双因素认证系统 1.3.6 数据库审计系统 1.3.7 数据脱敏系统 1.3.8…

十,[极客大挑战 2019]Secret File1

点击进入靶场 查看源代码 有个显眼的紫色文件夹&#xff0c;点击 点击secret看看 既然这样&#xff0c;那就回去查看源代码吧 好像没什么用 抓个包 得到一个文件名 404 如果包含"../"、"tp"、"input"或"data"&#xff0c;则输出"…

UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets

插件名称&#xff1a;UPIrregularWidgets 插件包含以下功能 你可以点击任何图片&#xff0c;而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能&#xff0c;复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…