【发布时间】:2012-10-19 07:45:53
【问题描述】:
我在 Ubuntu 上,我想在当前目录和子目录中查找名称包含字符串“John”的所有文件。我知道grep 可以匹配文件的内容,但我不知道如何将它与文件名一起使用。
【问题讨论】:
我在 Ubuntu 上,我想在当前目录和子目录中查找名称包含字符串“John”的所有文件。我知道grep 可以匹配文件的内容,但我不知道如何将它与文件名一起使用。
【问题讨论】:
使用find 命令,
find . -type f -name "*John*"
【讨论】:
#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; fi 创建自定义 bash 脚本可以让您以完美的快捷方式运行 F search-string
[ -z "$1" ] 会好一点。
if [ -z ]。我认为这将是一个语法错误,但它有效。从现在开始,我可以简化一些代码。
使用 ack 很简单。
只需输入ack <string to be searched>
【讨论】:
find 命令会花费很长时间,因为它会扫描文件系统中的真实文件。
最快的方法是使用locate 命令,它会立即给出结果:
locate "John"
如果没有找到该命令,则需要先安装mlocate包并运行updatedb命令,以准备第一次搜索数据库。
【讨论】:
这是一个非常简单的解决方案,在您要搜索的目录中使用tree 命令。 -f 显示完整的文件路径,| 用于将 tree 的输出通过管道传输到 grep 以查找名称中包含字符串 filename 的文件。
tree -f | grep filename
【讨论】: