传递一个作为脚本参数给出的glob表达式来查找

时间:2016-10-18 15:22:10

标签: bash

我想在命令行中找到一些带有给定参数的文件,这是我的脚本

find -name $1

当我使用参数'*.txt'运行它时,它不起作用。为什么?我能解决什么问题?

1 个答案:

答案 0 :(得分:2)

通配符的不带引号扩展将替换为当前目录中与该模式匹配的文件名列表。

因此:

set -- '*.txt' # same as running your script with '*.txt' as first argument
touch a.txt b.txt c.txt

find -name $1

...将运行:

find -name a.txt b.txt c.txt

......这不是有效用途。

为了避免全局扩展,请始终引用您的扩展:find . -name "$1"