使用命令行按名称查找文件

使用命令行按名称查找文件

我想使用命令行确定文件的位置。我尝试过:

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

在哪里:

  • /可以替换为您要开始搜索的目录
  • fd如果你要搜索的是目录而不是文件,可以替换为
  • -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”。

  • 您可以在其中更改“文件名“(可以以任意内容开头和结尾的文件)到文件的准确名称。

相关内容