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

How to search for a file which name I don't know in Bash?

我知道哪个目录包含一个我不知道名称的文件,但我知道它的名称结尾(例如,.txt),而且我知道目录中正好有一个这样结尾的文件。 我尝试了以下代码:file=grep -w /*.txt 当 $1 是目录地址时根本没有帮助,file=/*.txt 也没有。 有什么方法可以达到我的要求吗?

您要查找的是 find 命令。

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

find . -iname '*.txt'

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

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

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

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

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

当然,在很多情况下,你并不需要知道准确的文件名。如果你想 运行 grep 匹配你的通配符的文件,就这样做:

grep "xyzzy" ""/*.txt