[20250118]find命令文件统配符使用引号.txt

[20250118]find命令文件统配符使用引号.txt

--//网上看到的问题,实际上问题许多人包括我自己也经常会犯类似的错误。因为如果没有引号,bash shell会展开解释。
--//通过一个简单例子说明问题:

$ mkdir 202501
$ cd 202501

$ touch a1.txt
$ touch a2.txt

$ echo *.txt
a1.txt a2.txt

$ echo *.aaaa
*.aaaa

--//前者当前目录存在a1.txt ,a2.txt ,当执行echo *.txt时自动展开a1.txt a2.txt。
--//而后者echo *.aaaa ,当前目录不存在匹配该模式的文件,展开的是*.aaaa,有时候find命令执行正常就是这个原因。
--//当前目录没有,而子目录存在,find命令执行正确的情况。

--//做一个特殊的例子说明问题。
$ rm -f a1.txt a2.txt

$ touch +6+

$ echo 2 * 3 | bc
11

$ echo 2 * 3
2 +6+ 3
--//实际上echo 2 * 3展开的是2+6+3 ,这样bc的计算结果就是11.改写如下都是正确的。

$ echo 2 "*" 3  | bc
6

$ echo 2 '*' 3  | bc
6

$ echo 2 \* 3  | bc
6

--//总之,理解好这些细节,就可以规避这些可能遇到的古怪问题,当然不仅仅是find命令。
posted @   lfree  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)
历史上的今天:
2023-01-18 [20221227]a mutating table error without a trigger!.txt
2018-01-18 [20180118]tstats的问题.txt
点击右上角即可分享
微信分享提示