使用引号查找命令导致“没有这样的文件”
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*"
以上是关于使用引号查找命令导致“没有这样的文件”的主要内容,如果未能解决你的问题,请参考以下文章
python 字符串组成MySql 命令时,字符串含有单引号或者双引号导致出错解决办法
运行 Solidity 合约导致“ENOENT:没有这样的文件或目录”错误
为什么Docker运行失败? exec用户进程导致“没有这样的文件或目录”
standard_init_linux.go:219: exec 用户进程导致:没有这样的文件或目录 - docker 问题