如何在Bash中搜索我不知道的文件?

时间:2015-04-15 00:20:03

标签: bash shell grep

我知道包含文件的目录是什么,我不知道,但我知道它的名字结尾(例如.txt),我知道那里&#39 ; s恰好是一个文件,在目录中有这样的结尾。 我已经尝试了以下代码:file=grep -w $1/*.txt当$ 1是目录地址时根本没有帮助,file=$1/*.txt也没有。 有没有办法实现我想要的东西?

3 个答案:

答案 0 :(得分:0)

您正在寻找的是find命令。

你可以像这样使用它(确保你在你想要搜索的目录中):

find . -iname '*.txt'

使用命令man find了解有关该命令的更多信息。

答案 1 :(得分:0)

/usr/bin/find directory_name -iname "*.txt"

如果你想对那些搜索过的文件进行操作,你甚至可以使用find -exec

答案 2 :(得分:0)

如果你知道精确的目录和一个与任何其他文件都不匹配的通配符,你可以运行一个只循环一次的循环。

for file in "$1"/*.txt; do
    : "$file" refers to your file here
done

当然,在很多情况下,您并不需要知道确切的文件名。如果要在与通配符匹配的文件上运行grep,请执行以下操作:

grep "xyzzy" "$1"/*.txt