joh*_*ser 54 linux ksh find locate which
理想情况下,我可以使用像这样的程序
find [file or directory name]
Run Code Online (Sandbox Code Playgroud)
报告具有匹配文件名/目录的路径.不幸的是,这似乎只检查当前目录,而不是整个文件夹.
我也尝试过找到哪个,但是没有找到文件,即使我知道它在某个地方的计算机上.
Rus*_*Uhl 81
"不幸的是,这似乎只检查当前目录,而不是整个文件夹".大概你的意思是它不会在子目录中查找.要解决此问题,请使用find -name "filename"
如果有问题的文件不在当前工作目录中,您可以通过搜索整个计算机
find / -name "filename"
Run Code Online (Sandbox Code Playgroud)
这也适用于类似的东西等find / -name "*.pdf".有时候我也喜欢将它输入到grep语句中(因为,至少在我的机器上,它会突出显示结果),所以我最终会得到像
find / -name "*star*wars*" | grep star
Run Code Online (Sandbox Code Playgroud)
这样做或类似的方法只是帮助我立即找到文件名并识别它是否实际上是我正在寻找的文件.
如果需要找到嵌套在一些目录中:
find / -type f -wholename "*dirname/filename"
Run Code Online (Sandbox Code Playgroud)
或连接dirs:
find / -type d -wholename "*foo/bar"
Run Code Online (Sandbox Code Playgroud)
该find命令将花费很长时间,搜索文件的最快方法是使用locatecommand,它在索引数据库(由 command 更新)中查找文件名(和路径updatedb)。
结果将通过一个简单的命令立即出现:
locate {file-name-or-path}
Run Code Online (Sandbox Code Playgroud)
如果没有找到该命令,则需要先安装mlocate包并运行updatedb命令,以便第一次准备搜索数据库。
更多细节在这里:https : //medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
要摆脱权限错误(等等),您可以将stderr重定向到无处
find / -name "something" 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89381 次 |
| 最近记录: |