如何在linux上查找目录?

Edw*_*uay 517 linux command-line

我有一个带有Suse Linux 10.3的 VPS 。

我已经通过SSH/putty登录并试图找到我的网络文件所在的位置。

由于我通过 FTP 在名为httpdocs的目录中上传,因此我假设该目录存在于某处。

我的谷歌搜索教会了我这样做,转到我的根目录并输入:

find httpdocs -type d

但它说“没有这样的文件或目录”。

我怎样才能找到这个目录?

Old*_*Jim 695

这是:

find / -type d -name 'httpdocs'
Run Code Online (Sandbox Code Playgroud)

第一个参数“/”是查看的位置,在本例中“/”是整个系统。

-name 可以是 -iname 忽略大小写

-type 也不是强制性的

使用 : man find以获取更多选项

  • 对于简单的搜索可能无关紧要,但对于更复杂的查找命令,值得注意的是,事物是按照它们在命令行上的顺序进行评估的。因此,您可能希望在 -name 之前使用 -type d(仅限目录),以加快速度。同样,这在这里可能无关紧要,但是当进入更复杂的搜索时,它可以显着提高搜索速度。 (98认同)
  • 如果你打算在整个文件系统上执行查找,尤其是服务器,那么使用 `nice` 通常是好的,这样查找就不会从更关键的进程中占用太多资源:`nice find / ...` (24认同)
  • 我会附加 2> /dev/null 以避免我的搜索结果隐藏在所有权限错误中。 (20认同)
  • 实际上,`-name` 测试比大多数其他测试要快,因为 `-name` 匹配目录的列表,该列表已经从磁盘加载,而其他测试需要执行 `stat(2)` 以获取文件信息。在对文件的第一次 `stat()` 调用之后,后续测试从内存中获取,例如:`-type f -mtime -10`。 (14认同)

Zyp*_*her 68

这个命令应该让你得到你正在寻找的东西:

find / -type d -name httpdocs
Run Code Online (Sandbox Code Playgroud)

它将从服务器的根目录搜索名称为 httpdocs 的目录,或者如果您只想从当前目录搜索,请将“/”替换为“.”。

您可以尝试的另一个命令是 locate 您将执行以下操作:

locate httpdocs
Run Code Online (Sandbox Code Playgroud)

  • 对于那些使用“locate”命令的人(假设它存在于你的系统中),确保它查找的数据库是最新的;通常一些 cron 工作会处理它。否则,运行“updatedb”(root 用户)。然后运行您需要的“locate <somefile>”。这是查找最近添加的文件/目录所必需的。 (4认同)
  • +1 用于定位。它“快很多”,但前提是它的索引是最新的。幸运的是,像“httpdocs”这样的东西不会经常改变位置。如果您计划在计算机上重复搜索文件,那么值得花几分钟来设置 updatedb cron 作业。 (3认同)
  • 同样在许多情况下, locate 将返回太多结果,因为该目录中的所有 100k 文件都会显示出来。在这种特殊情况下,如果每个用户都有自己的包含 100 或 1000 个文件的 httpdoc,那么 OP 想要的结果可能会丢失。 (2认同)

小智 31

find / -type d -name httpdocs 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

这将消除您在不以 root 用户身份执行此操作时可能(阅读,始终)获得的所有错误消息。建议这样做。

  • `2> /dev/null` 选项非常有用。否则很难看到想要的结果...... (4认同)

小智 14

了解参数 -iname 来搜索“不区分大小写”的模式和使用通配符:*、? 等很重要。

两个例子:

从 /root 搜索包含字符串“Linux”的所有文件,不区分大小写:

find  /root -type f -iname "*linux*"
Run Code Online (Sandbox Code Playgroud)

从 /root 搜索包含字符串“Linux”的所有目录,不区分大小写:

find  /root -type d -iname "*linux*"
Run Code Online (Sandbox Code Playgroud)

从这里提取:

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


小智 10

你几乎拥有它。正确的语法是:

find / -type d -name httpdocs
Run Code Online (Sandbox Code Playgroud)

该目录可能在 /var/www/