理想情况下,我可以使用类似的程序
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
如果需要查找嵌套在某些目录中:
find / -type f -wholename "*dirname/filename"
或连接的目录:
find / -type d -wholename "*foo/bar"
该find
命令将花费很长时间,搜索文件的最快方法是使用locate
命令,它在索引数据库中查找文件名(和路径)(由命令更新updatedb
)。
结果将通过一个简单的命令立即出现:
locate {file-name-or-path}
如果找不到该命令,则需要先安装mlocate
包并运行updatedb
命令,以准备第一次搜索数据库。
我希望此评论将帮助您使用终端查找本地和服务器文件路径
find "$(cd ..; pwd)" -name "filename"
或者只是您想查看当前位置然后运行
pwd "filename"
如果是您要查找的命令文件,最快最准确的方法是使用
which "commandname"
即使系统上有许多同名文件,这也会显示用于命令的实际文件。