Dru*_*Dru 157 unix linux command-line locate
我一直在搜索一个命令,它将返回当前目录中包含文件名中字符串的文件.我已经看到locate
,并find
能找到的命令开始与一些文件first_word*
或东西结束*.jpg
.
如何返回文件名中包含字符串的文件列表?
例如,if 2012-06-04-touch-multiple-files-in-linux.markdown
是当前目录中的文件.
我怎么能返回这个文件和其他包含字符串的文件touch
?使用诸如的命令find '/touch/'
Zag*_*rax 257
用途find
:
find . -maxdepth 1 -name "*string*" -print
它将找到maxdepth 1
包含"string" 的当前目录中的所有文件(删除,如果你想要它递归),并将其打印在屏幕上.
如果要避免包含':'的文件,可以键入:
find . -maxdepth 1 -name "*string*" ! -name "*:*" -print
如果你想使用grep
(但我认为没有必要,你不想检查文件内容)你可以使用:
ls | grep touch
但是,我再说一遍,这find
是一个更好,更清洁的解决方案.
car*_*ing 13
使用grep如下:
grep -R "touch" .
Run Code Online (Sandbox Code Playgroud)
-R
意味着递归.如果您不想进入子目录,请跳过它.
-i
意思是"忽视案例".您可能会发现这也值得一试.
小智 7
该-maxdepth
选项应该是之前-name
的选项,如下图所示,
find . -maxdepth 1 -name "string" -print
Run Code Online (Sandbox Code Playgroud)