这些命令之间有什么区别:
find . –type f –name '*txt*'
和
find . –type f | grep 'txt'
我尝试运行了这个程序,发现结果有所区别,但我想知道原因是什么?
主要区别在于FIND用于使用过滤器搜索文件和目录,而GREP用于在文件或进程中搜索模式。
FIND是一个用于搜索文件和文件夹的命令,可以使用诸如大小、访问时间、修改时间等过滤器。
find命令列出所有符合一组过滤条件的目录及其子目录中的文件。
该命令最常用于查找所有具有特定名称的文件。
要查找当前目录及其所有子目录中名为theFile.txt的所有文件,请输入:
find . -name theFile.txt -print
要在当前目录及其子目录中查找所有扩展名为 .txt 的文件,请输入:
find . -name "*.txt" -print
GREP :(全局搜索正则表达式并打印)
在文件中搜索指定的字符串或表达式。
Grep搜索包含指定模式的行,并默认将它们写入标准输出。
grep myText theFile.txt
结果:Grep将打印每行包含单词myText的内容。
find
实用程序来列出文件名包含字符串txt
的普通文件。find
实用程序列出常规文件的文件名,并通过管道将结果文件名提供给grep
实用程序,该实用程序搜索管道的内容(每行一个文件名的文件列表)以查找字符串txt
。每次找到此字符串时,都会输出相应的行(其中包含文件名)。txt
时,第二个命令将找到匹配项。如果您不想匹配类似于txtfiles/allfiles.tgz
和transactions/txtelevisions/bigscreen.jpg
的路径,则应使用第一个命令。第一条命令将显示文件名中包含txt的文件。 而第二条命令将突出显示所有内容中包含txt的文件的行。