理想情况下,我希望能够使用类似于
find [file or directory name]
报告具有匹配文件名/目录的路径。不幸的是,这似乎只检查当前目录,而非整个文件夹。
我也尝试了 locate 和 which,但都找不到该文件,尽管我知道它在电脑上某个地方。
很不幸,这似乎只检查当前目录,而不是整个文件夹。可能你的意思是它不会查找子目录。要解决此问题,请使用find -name "filename"
。
如果需要查找的文件不在当前工作目录中,您可以通过使用以下命令搜索整台机器:
find / -name "filename"
这也适用于类似 find / -name "*.pdf"
的东西等等。有时我也喜欢将其输送到 grep 语句中(由于至少在我的机器上可以突出显示结果),所以最终会得到类似以下的结果:
find / -name "*star*wars*" | grep star
采用这种或类似的方法,可以帮助我立即找到文件名,并识别它是否确实是我要寻找的文件。
要消除权限错误(等问题),您可以将stderr重定向到无处
find / -name "something" 2>/dev/null
cd
命令来查找文件,也不想搜索数百个权限被拒绝的行的Linux新手来说,这是完美的答案。对于我的特定情况,我正在尝试在SQL Server Linux中找到sqlcmd工具。 - Nick.McDermaidfind
命令需要很长时间来查找文件,最快的搜索文件的方法是使用 locate
命令,它会在一个已经建立索引的数据库中查找文件名(和路径)(这个数据库可以通过 updatedb
命令进行更新)。locate {file-name-or-path}
mlocate
包并运行 updatedb
命令,在首次准备搜索数据库。详情请参考:https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab。find / -type f -wholename "*dirname/filename"
find / -type d -wholename "*foo/bar"
find "$(cd ..; pwd)" -name "filename"
或者你只想查看你的当前位置,那么运行:
pwd "filename"
find -name "filename"
会在当前工作目录递归查找文件。 - foips