我一直在寻找一个命令,该命令将从当前目录返回文件名中包含字符串的文件。我见过locate
和find
命令,它们可以查找以first_word*
开头或以*.jpg
结尾的文件。
如何返回文件名中包含字符串的文件列表?
例如,如果2012-06-04-touch-multiple-files-in-linux.markdown
是当前目录中的文件。
我如何返回这个文件和其他包含字符串touch
的文件?使用诸如find '/touch/'
之类的命令
发布于 2012-07-04 20:25:12
使用find
find . -maxdepth 1 -name "*string*" -print
它将在当前目录中找到包含"string“的所有文件(如果您想要递归,则删除maxdepth 1
),并将其打印在屏幕上。
如果你想避免包含':‘的文件,你可以输入:
find . -maxdepth 1 -name "*string*" ! -name "*:*" -print
如果你想使用grep
(但我认为没有必要,因为你不想检查文件内容),你可以使用:
ls | grep touch
但是,我重申,对于您的任务,find
是一个更好、更干净的解决方案。
发布于 2012-07-04 20:20:51
按如下方式使用grep:
grep -R "touch" .
-R
的意思是递归。如果你不想进入子目录,那么跳过它。
-i
的意思是“忽略大小写”。你可能会发现这也值得一试。
发布于 2014-09-15 22:25:37
-maxdepth
选项应该在-name
选项之前,如下所示。
find . -maxdepth 1 -name "string" -print
https://stackoverflow.com/questions/11328988
复制相似问题