简单举例:
Linux用户下有work目录,在家目录执行find命令,可以得到work子目录下所有以txt结尾的文件。
为什么cd到work目录后,再次执行同样的find命令,只查到了一个txt文件,而没有遍历子目录查询呢?
find 后面匹配的名字 加上"", 这才会作为一个参数传递给find. 不然会先被shell解析. 即使用 find ./ -name "*txt"
find ./ -name "*txt"
例子
18:30:47 [root@ddcw21 t20231202]#find ./ -name "*txt" ./aa/a.txt ./aa/dd/d.txt ./bb/b.txt ./cc/c.txt 18:32:15 [root@ddcw21 t20231202]#cd aa 18:32:17 [root@ddcw21 aa]#find ./ -name "*txt" ./a.txt ./dd/d.txt 18:32:19 [root@ddcw21 aa]#
同理,echo等命令也是同样的效果, 在编写shell脚本的时候需要注意下.(小坑) 传参数的时候也要注意下(也是个坑…, 也可以说是bash的锅-_-)