在linux中的文件中查找
如果您是Windows用户或OSX的非超级用户,则可能使用GUI查找文件。 您可能还会发现界面有限,令人沮丧或两者兼而有之,并且学会了精于组织事物并记住文件的确切顺序。 您也可以在Linux中执行此操作,但不必这样做。
关于Linux的最好的事情之一是,它提供了多种做事方式。 您可以打开任何文件管理器和ctrl
+ f
,可以使用其中的程序手动打开文件,也可以简单地开始输入字母,它将过滤当前目录列表。
但是,如果您不知道文件在哪里并且不想搜索整个磁盘该怎么办? Linux在此以及各种其他用例上都有很好的工具。
通过命令名称查找程序位置
例如, which bash
通常将返回/bin/bash
,但是如果您下载程序但该程序没有出现在菜单中,那么which
命令可能是一个很好的工具。
locate
命令是一个类似的实用程序,它对查找配置文件很有用。 我不喜欢输入程序名称,因为像locate php
这样的简单名称通常会提供许多需要进一步过滤的结果。
有关locate
和which
更多信息,请参见man
页:
-
man which
-
man locate
找
find
实用程序提供了更多高级功能。 下面是一个示例示例,该脚本是我安装在要管理的许多服务器上的脚本,以确保特定格式的文件(也称为glob)仅存在五天,并且所有早于该日期的文件都会被删除。 (自上次修改以来,使用十进制表示最多240分钟的差异。)
find ./backup/core-files*.tar.gz -mtime +4.9 -exec rm {} \;
find
实用程序具有许多高级用例,但最常见的是对结果执行命令,而无需按类型,创建和修改日期链接和过滤文件。
find
另一个有趣用途是find
具有可执行权限的所有文件。 这可以帮助确保没有人在昂贵的服务器上安装比特币矿工或僵尸网络。
find / -perm /+x
有关find
更多信息,请参见使用man find.
的man
页man find.
格列普
是否要按文件内容查找文件? Linux已经涵盖了。 您可以使用许多Linux实用程序来有效地搜索与模式匹配的文件,但是grep
是我经常使用的文件。
假设您有一个应用程序正在传递带有代码参考和堆栈跟踪的错误消息。 您可以在日志中找到这些。 不一定总是要尝试,但是如果问题在于提供的值,我总是grep -R
。
越来越多的IDE正在实现查找功能,但是如果您正在访问远程系统或出于某种原因没有GUI,或者要就地进行迭代,请使用: grep -R {searchterm}
或在支持egrep
别名的系统上; 只需将-e
标志添加到命令egrep -r {regex-pattern}
。
去年,我在Raspbian中修补dhcpcd5
时就使用了这种技术,因此我可以继续在Raspberry Pi Foundation的较新Debian版本上运行网络访问点。
哪些技巧可帮助您在Linux上更有效地搜索文件?
翻译自: https://opensource.com/article/18/4/how-find-files-linux
在linux中的文件中查找