我正在尝试搜索特定文件夹的文件和目录。例如,我正在寻找/usr/bin
我的python
二进制文件。为此,我使用了ls | grep python
.当我这样做时,我能够找到,例如,,,python3
等等python3-config
。
虽然这工作正常,但我知道有更简单的方法可以做到这一点:我不必通过管道传输到grep
.但是当我尝试时find . -name python
,根据我对find
手册页的理解,它没有产生任何结果。
我知道grep
搜索文件。搜索给定目录的正确方法是什么?
答案1
你可以使用“globbing”做几件事简而言之:shell 尝试匹配
? to any character, (unless it is "protected" by single or double quotes
* to any string of characters (even empty ones), unless protected by single or double quotes
[abc] can match either 'a', 'b' or 'c'
[^def] is any single character different than 'd', 'e' or 'f'
因此,要匹配 /usr/bin 下任何包含 python 的内容:
ls -d /usr/bin/*python* # just looks into that directory
或者与 find 一起使用,您还可以使用通配符。但是,您需要将其用引号引起来,以便 shell 不会展开它们,而是将它们完整地传递给 find 命令:
find /usr/bin -name '*python*' # could descend into subfolders if present