我一直在尝试在根文件系统中搜索某个字符串(在文件名或中间的任何位置)。我读到了grep,我在这里尝试了这段代码:
grep -rnw /home/pi/music -e "Maroon"
发生了一些奇怪的事情,其中有三个带有Maroon的文件名(大小写和间距相同),但只有两个出现在终端中。任何想法为什么会这样?还有其他更简单的方法吗?
我还想说我看到了这个StackOverflow帖子here,但我无法让它发挥作用。我相信这是专注于特定的文件名,而我想进行一般搜索。
非常感谢所有帮助!
答案 0 :(得分:0)
grep
读取磁盘上的文件,并搜索单词" Maroon"。
我认为你想要的(搜索文件名时)是:
find /home/pi/music -iname "*maroon*"
这将显示名为*maroon*
的所有文件(不区分大小写)。如果您想要区分大小写,请查看-name
。
man find
将列出find
的所有选项。
答案 1 :(得分:0)
在匹配特定模式时搜索文件的正确(或更常见)方式是使用find
命令,如下所示:
find /home/pi/music -type f -iname "*maroon*" -ls
type
,将搜索限制为特定类型,在这种情况下f
用于常规文件(因此它将忽略目录,管道,套接字等)
iname
不区分大小写的名称搜索
ls
列出找到的文件。
grep
用于在文件中搜索以匹配内容。
答案 2 :(得分:-1)
您想使用find来搜索文件名
find /home/pi/music -depth 1 -name \*Maroon\*
这将找到名称包含字符串的文件。你需要引用文件名,所以shell不会将其全局化。 -depth 1所以你只搜索当前目录