理想情况下,我可以使用像
这样的程序find [file or directory name]
报告具有匹配文件名/目录的路径。不幸的是,这似乎只检查当前目录,而不是整个文件夹。
我也尝试过找到哪个,但是没有找到该文件,即使我知道它在某个地方的计算机上。
答案 0 :(得分:68)
"不幸的是,这似乎只检查当前目录,而不是整个文件夹"。大概你的意思是它不会在子目录中查找。要解决此问题,请使用find -name "filename"
如果相关文件不在当前工作目录中,您可以通过
搜索整个计算机find / -name "filename"
这也适用于像find / -name "*.pdf"
等的东西。有时候我也喜欢将它输入到grep语句中(因为,至少在我的机器上,它会突出显示结果),所以我最终会得到一些东西喜欢
find / -name "*star*wars*" | grep star
执行此操作或类似方法只会帮助我立即找到文件名,并确认它是否实际上是我要查找的文件。
答案 1 :(得分:7)
如果需要在某些目录中找到嵌套:
find / -type f -wholename "*dirname/filename"
或连接dirs:
find / -type d -wholename "*foo/bar"
答案 2 :(得分:3)
find
命令需要很长时间,搜索文件的最快方法是使用locate
命令,该命令在索引数据库中查找文件名(和路径)(通过命令{{更新) 1}})。
结果将立即显示一个简单的命令:
updatedb
如果找不到该命令,则需要先安装locate {file-name-or-path}
软件包并运行mlocate
命令,以便首次准备搜索数据库。
答案 3 :(得分:3)
要摆脱权限错误(或类似错误),您可以将stderr重定向到无处
find / -name "something" 2>/dev/null
答案 4 :(得分:0)
下面的示例将有助于查找当前目录中的特定文件夹。此示例仅搜索当前目录中的当前直接和它将搜索子目录
#!/bin/bash
result=$(ls -d operational)
echo $result
test="operational"
if [ "$result" == "$test" ]
then
echo "TRUE"
else
echo "FALSE"
fi
答案 5 :(得分:0)
如果您要查找的是命令文件,最快,最准确的方法是
which "commandname"
即使您在系统上有许多同名文件,也会显示该命令使用的实际文件。
答案 6 :(得分:0)
我希望此评论可以帮助您使用终端
查找本地和服务器文件路径 find "$(cd ..; pwd)" -name "filename"
或者只是想查看您的当前位置然后运行
pwd "filename"