Sam*_*007 241 command-line directory find
我想使用命令行确定文件的位置。我试过了:
find . -type f -name "postgis-2.0.0"
Run Code Online (Sandbox Code Playgroud)
和
locate postgis-2.0.0
Run Code Online (Sandbox Code Playgroud)
无济于事。确定文件目录的命令是什么,提供它的名称?
ade*_*lff 315
试试吧find ~/ -type f -name "postgis-2.0.0"。
使用.只会搜索当前目录。 ~/将搜索您的整个主目录(可能是您将其下载到的位置)。如果您wget以 root 身份使用,则它可能位于其他地方,因此您可以/用来搜索整个文件系统。
祝你好运
rev*_*dj1 36
我会尝试:
sudo find / -type d -name "postgis-2.0.0"
Run Code Online (Sandbox Code Playgroud)
这 。意味着只在当前目录中搜索,如果你真的不知道,最好从 root 搜索所有内容。此外,输入 -f 表示搜索文件,而不是文件夹。添加sudo允许它在所有文件夹/子文件夹中搜索。
您的语法locate是正确的,但您可能需要运行
sudo updatedb
Run Code Online (Sandbox Code Playgroud)
第一的。不管出于什么原因,我从来没有好运locate。
locate使用由updatedb. 因此,如果您下载了一个新文件,则您updatedb没有更新文件和目录数据库的可能性更大。您可以sudo updatedb在使用locate实用程序之前使用。
updatedb通常在 linux 系统上每天单独运行一次。
小智 16
其他答案很好,但我发现省略Permission denied语句给了我更清晰的答案(stderr由于未运行而省略s sudo):
find / -type f -iname "*postgis-2.0.0*" 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
在哪里:
/ 可以替换为您要从中开始搜索的目录fd如果您正在搜索目录而不是文件,则可以替换为-iname-name如果您希望搜索区分大小写,则可以替换为*如果您不想在搜索中使用通配符,可以省略搜索词中的s另一种选择是:
find / -type f 2>/dev/null | grep "postgis-2.0.0"
Run Code Online (Sandbox Code Playgroud)
如果搜索词匹配完整文件路径中的任何位置,则这种方式将返回结果,例如 /home/postgis-2.0.0/docs/Readme.txt
小智 6
尝试 find . -name "*file_name*"
您可以将“.”(查看当前目录)更改为“/”(查看整个系统)或“~/”(查看主目录)。
如果您不希望区分大小写,您可以将“-name”更改为“-iname”。
您可以在其中将“ file_name ”(可以以任何内容开头和结尾的文件)更改为文件的确切名称。
这应该可以简化文件的定位:
这将为您提供文件的完整路径
tree -f / | grep postgis-2.0.0
Run Code Online (Sandbox Code Playgroud)
树以树状格式列出目录的内容。告诉-f树给出文件的完整路径。因为我们不知道它的位置或父位置,所以最好从文件系统根目录/向下递归搜索。然后我们将输出发送到 grep 以突出显示我们的单词,postgis-2.0.0
| 归档时间: |
|
| 查看次数: |
999201 次 |
| 最近记录: |