我正在尝试创建一个非常简单的bash脚本来查找与当前目录的目录结构中的给定名称匹配的文件。所以,我使用了像这样的查找功能
ARGS=1
E_BADARGS=65
E_NOFILE=66
if [ $# -ne "$ARGS" ] # Correct number of arguments not passed
then
echo "Usage: `basename $0` filename"
exit $E_BADARGS
fi
echo `find ./ -type f -name \$1`
这工作正常但不像我在命令行中使用find命令时,生成的文件路径不是由换行符分隔,而是由空格分隔。这在屏幕上自然不容易看到。如何回显以便它找到的每个文件将被换行符分隔。
答案 0 :(得分:3)
我会将你的find命令更改为:
find . -maxdepth 1 -type f -name "$1"
请注意,双引号在find命令中非常重要,用于处理正则表达式correclty。我还将maxdepth 1
添加到仅在当前目录中搜索文件
答案 1 :(得分:1)
尝试更改
echo `find ./ -type f -name \$1`
到
find ./ -type f -name $1
答案 2 :(得分:1)
正如@codaddict所说,echo
在这里是不必要的。但是,了解为什么代码以这种方式运行也是一个很好的练习。提示:比较
echo `find ./ -type f -name \$1`
和
echo "`find ./ -type f -name \$1`"