BASH的文件名扩展挖的一个坑

本文探讨了Bash中文件名扩展导致的一个问题,通过示例展示了未使用引号导致当前目录文件影响`find`命令结果的情况。通过理解Bash的文件名扩展机制,了解到使用引号或特定转义方式可以避免这种扩展,从而得到预期的命令执行结果。
摘要由CSDN通过智能技术生成

问题

这两天看到一个问题,整理之后是这样:

“对于一般情况,在 bash 里执行find / -name test*,会得到预期结果吗?”

这里有坑。如果一眼就看出来了,基础扎实,可以忽略后文了。

过程

执行一把,看看结果:

bash-4.2# find / -name test*
/usr/bin/test
/sys/devices/virtual/net/ip6tnl0/testing
/sys/devices/virtual/net/eth0/testing
/sys/devices/virtual/net/lo/testing
/sys/devices/virtual/net/tunl0/testing
/sys/fs/ext4/features/test_dummy_encryption_v2

似乎没问题,真的没问题吗?加点料再执行一把:

bash-4.2# touch test1; find / -name test*
/test1

发现问题了,在当前目录下加了一个文件 test1,结果变得奇怪了。那我删了:

bash-4.2# rm test1; find / -name test*
/usr/bin/test
/sys/devices/virtual/net/ip6tnl0/testing
/sys/devices/virtual/net/eth0/testing
/sys/devices/virtual/net/lo/testing
/sys/devices/virtual/net/tunl0/testing
/sys/fs/ext4/features/test_dummy_encryption_v2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值