使用引号查找命令导致“没有这样的文件”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用引号查找命令导致“没有这样的文件”相关的知识,希望对你有一定的参考价值。

在我的目录中有文件:

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 . "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 ...]

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

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

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

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

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

find . -name "f*.l*"  

以上是关于使用引号查找命令导致“没有这样的文件”的主要内容,如果未能解决你的问题,请参考以下文章

require_once 导致“没有这样的文件或目录”错误

python 字符串组成MySql 命令时,字符串含有单引号或者双引号导致出错解决办法

运行 Solidity 合约导致“ENOENT:没有这样的文件或目录”错误

linux中怎么查看mysql数据库版本

为什么Docker运行失败? exec用户进程导致“没有这样的文件或目录”

standard_init_linux.go:219: exec 用户进程导致:没有这样的文件或目录 - docker 问题