文件搜索bash脚本

时间:2010-09-17 10:47:01

标签: linux bash find

我正在尝试创建一个非常简单的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命令时,生成的文件路径不是由换行符分隔,而是由空格分隔。这在屏幕上自然不容易看到。如何回显以便它找到的每个文件将被换行符分隔。

3 个答案:

答案 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`"