gpt4 book ai didi

linux - 在 "no such file"中查找带引号的命令结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:25 27 4
gpt4 key购买 nike

在我的目录中有文件:

file1.txt  fix.log  fixRRRRRR.log  fixXXXX.log  output.txt

为了理解 find 命令,我尝试了很多东西,其中我想使用 2 个通配符。目标是找到以 f 开头且扩展名以 l 开头的文件。

$ find . f*.l*

./file1.txt
./fix.log
./fixRRRRRR.log
./output.txt
./fixXXXX.log
fix.log
fixRRRRRR.log
fixXXXX.log

我在论坛答案中读到在 find find 中使用引号。 “f*.l*” 结果为:`

./file1.txt
./fix.log
./fixRRRRRR.log
./output.txt
./fixXXXX.log

结果是 find: ‘f*.l*’: No such file or directory

我做错了什么,我的推理错误在哪里?

感谢您的回答。

最佳答案

查找不是那样工作的。一般来说,find 的调用形式如下所示:

find [entry1] [entry2] ... [expressions ...]

条目是 find 开始搜索文件的起点。

在您的情况下,您实际上没有提供任何表达式。

在第一个命令(不带引号)中,shell 将通配符扩展为匹配文件列表(在当前目录中),然后将该列表作为参数传递给 find。所以找到。 f*.l* 本质上等同于 find 。 fix.log fixRRRRRR.log fixXXXX.log。因此,find 将所有这些参数视为要搜索的目录/文件(而不是要搜索的模式),并列出 . 下的所有文件,(所有内容)然后是 fix 下的所有文件。 log(它不是目录,所以它只是文件本身),然后是 fixRRRRRR.log 下的所有文件,最后是 fixXXXX.log 下的所有文件。

在第二个(带引号)中,它搜索当前目录 (.) 下的所有文件,并尝试搜索字面上称为“f*.l*”的文件。

实际上您可能正在寻找“-name”表达式,可以这样使用:

find . -name "f*.l*"  

关于linux - 在 "no such file"中查找带引号的命令结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47853886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com