我想使用命令行确定文件的位置。我尝试过:
find . -type f -name "postgis-2.0.0"
和
locate postgis-2.0.0
无济于事。提供文件名称后,用什么命令可以确定文件的目录?
答案1
不妨尝试find ~/ -type f -name "postgis-2.0.0"
一下。
使用.
将仅搜索当前目录。 ~/
将搜索您的整个主目录(可能是您下载到的位置)。如果您wget
以 root 身份使用,则它可能位于其他地方,因此您可以使用它/
来搜索整个文件系统。
祝你好运
答案2
我会尝试:
sudo find / -type d -name "postgis-2.0.0"
. 表示仅在当前目录中搜索,如果您真的不知道,最好从根目录搜索所有内容。此外,键入 -f 表示搜索文件,而不是文件夹。添加sudo
允许它搜索所有文件夹/子文件夹。
您的语法locate
是正确的,但您可能必须运行
sudo updatedb
第一。无论出于什么原因,我从来没有好运气locate
。
locate
使用由 制作的文件和目录数据库updatedb
。因此,如果您下载了新文件,则很有可能您updatedb
尚未更新文件和目录数据库。您可以sudo updatedb
在使用locate
实用程序之前使用。
updatedb
在 Linux 系统上,它通常每天自行运行一次。
答案3
其他答案都很好,但我发现省略Permission denied
语句可以给我更清晰的答案(stderr
由于未运行而省略了 s sudo
):
find / -type f -iname "*postgis-2.0.0*" 2>/dev/null
在哪里:
/
可以替换为您要开始搜索的目录f
d
如果你要搜索的是目录而不是文件,可以替换为-iname
-name
如果您希望搜索区分大小写,可以将其替换为*
如果您不想在搜索中使用通配符,则可以省略搜索词中的s
另一种方法是:
find / -type f 2>/dev/null | grep "postgis-2.0.0"
如果搜索词与完整文件路径中的任何位置匹配,则此方法返回结果,例如/home/postgis-2.0.0/docs/Readme.txt
答案4
尝试find . -name "*file_name*"
其中您可以将“。”(查看当前目录)更改为“/”(查看整个系统)或“~/”(查看主目录)。
如果您不想区分大小写,可以将“-name”更改为“-iname”。
您可以在其中更改“文件名“(可以以任意内容开头和结尾的文件)到文件的准确名称。