Linux查找具有给定字符串的文件名


Answers:


195

使用find命令,

find . -type f -name "*John*"

1
使用创建自定义bash脚本,#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; fi 您将可以F search-string作为完美的快捷方式运行
Ilia Rostovtsev 2015年

@IliaRostovtsev-很好,但是[ -z "$1" ]会好一些。

@乔阿,对。您的意思是如果路径中有空格?但是在这里,我们仅检查$ 1空间的存在会使$ 2出现,仅此而已。您是说理论上更好,对吧?
伊利亚·罗斯托夫采夫

@IliaRostovtsev-其实我错了。如果$ 1为null,则测试变为if [ -z ]。我以为那是语法错误,但是可以。从现在开始,我可以简化一些代码。
2015年

25

已经提供了正确的答案,但是为了让您学习如何帮助自己,我认为我会以不同的方式提出一些有用的建议。如果您可以用一个词概括您要实现的目标,那么Linux上将提供强大的帮助功能。

man -k <your search term>

这样做是在简短说明中列出所有带有搜索词的命令。通常,您很有可能会找到自己想要的东西。;)

该输出有时可能会让人有些不知所措,我建议将其范围缩小到可执行文件,而不是所有可用的手册页,如下所示:

man -k find | egrep '\(1\)'

或者,如果您还想查找需要更高特权级别的命令,例如:

man -k find | egrep '\([18]\)'

3
我很好奇...一个问题,它表明没有尝试通过搜索解决当前问题会遭到投票,关于如何找出可能的命令的友好解释被踩了。有什么标准?:)
天衣

1
我支持你。教训很少有人能做到。但我们可以看到示例并进行调整:)
tgkprog



1

使用tree要搜索的目录中的命令,这是一个非常简单的解决方案。-f显示完整的文件路径,|并用于通过管道grep传输树的输出以查找filename名称中包含字符串的文件。

tree -f | grep filename
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.