Answers:
使用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
您将可以F search-string
作为完美的快捷方式运行
[ -z "$1" ]
会好一些。
if [ -z ]
。我以为那是语法错误,但是可以。从现在开始,我可以简化一些代码。
已经提供了正确的答案,但是为了让您学习如何帮助自己,我认为我会以不同的方式提出一些有用的建议。如果您可以用一个词概括您要实现的目标,那么Linux上将提供强大的帮助功能。
man -k <your search term>
这样做是在简短说明中列出所有带有搜索词的命令。通常,您很有可能会找到自己想要的东西。;)
该输出有时可能会让人有些不知所措,我建议将其范围缩小到可执行文件,而不是所有可用的手册页,如下所示:
man -k find | egrep '\(1\)'
或者,如果您还想查找需要更高特权级别的命令,例如:
man -k find | egrep '\([18]\)'
的 find
命令将花费很长时间,因为它会扫描文件系统中的实际文件。
最快的方法是使用locate
命令,它将立即给出结果:
locate "John"
如果找不到该命令,则需要安装mlocate
软件包并运行updatedb
命令首次准备搜索数据库。
此处有更多详细信息:https : //medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
使用ack很简单。只需输入ack <string to be searched>