我想根据文件名搜索一系列文件。
这是我的目录:
比如上面的例子,我只想搜索没有 _bak 的文件。
find . -maxdepth 1 -mindepth 1 ! -name '*_bak'
如果你想要在所有目录中递归搜索,请移除 -maxdepth 1
参数。
根据问题提出者的评论进行编辑
如果你想要获取以 ei
开头且不以 _bak
结尾的文件,请使用以下命令:
find . -type f -name 'ei*' -a ! -name '*_bak'
find . -name *_bak
,因为shell会将*_bak
替换为当前目录中匹配的文件名,导致通常会出现“未知的主要操作符”错误。请像这里的答案一样使用引号或双引号。 - Rian Rizvi find . -type f ! -iname "*_bak"
_bak
结尾的文件。find . -name 'ei*' -type f ! -iname "*_bak"
。 - AzizSM使用Grep反向匹配选项。
例如,如果您想要所有没有单词_bak的文件,请使用:
grep -v *_bak /path/to/file
grep
would work if you pipe the output of ls
to it. e.g. ls . | grep -v _bak
- Tymric
linux``unix
,并且正在询问如何挑选结尾没有_bak
的文件。我有什么遗漏吗?(虽然格式问题是真的。你应该使用纯文本。) - Tim Pote