linux - 文件搜索 bash 脚本

标签 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 命令不同,生成的文件路径不是由换行符分隔,而只是由空格分隔。这在屏幕上自然不太容易看出来。我如何回显以便它找到的每个文件都将用换行符分隔。

最佳答案

我会将您的查找命令更改为这个命令:

找到 . -maxdepth 1 -type f -name "$1"

请注意,双引号在 find 命令中非常重要,可以正确处理正则表达式。我还添加了 maxdepth 1 以仅在当前目录中搜索文件

关于linux - 文件搜索 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734656/

相关文章:

linux - evtest 没有给出扫描值

linux - 如何缩短 fasta 文件中的 header ?

bash - nginx rtmp-module 无法执行 ffmpeg

c - 在 C 中创建目录,linux 不创建子目录(目录树)——为什么?

linux - 如果函数是虚拟的,dlclose() 静态析构函数在不同时间运行

bash - 如何获取给定 ip 地址的以太网端口?

linux - 在 Linux 上使用列名 = 文件名将多个文件中的列添加到新文件

linux - 查找不在列表中的文件

linux - Bash 脚本,查找命令,使用通配符或正则表达式

javascript - 如何给 javascript find() 方法一个参数来搜索?