对于一个班级的家庭作业问题,我的任务是找到所有在学校服务器上有网页的研究生/本科生。
某个地方肯定有一个列表,但我不知道类似的东西会在哪里。
这个设置相当标准。要列出所有拥有某个帐户的研究生/本科生,我只需转到 /home/undergrad 或 /home/graduate,但我不知道如何找出谁在那里有网页。
我会使用locate来查找所有www目录,但这只适用于世界可读的目录。有人至少知道我应该寻找的文件名是什么吗?
答案1
个人网页通常位于 /home 中名为 public_html 的目录中。至少我猜是这样。
您可以使用 find 在 /home 内找到所有
find /home 2>/dev/null -type d -name public_html
- /家是要在其中搜索的目录
- 2> /dev/null 复制代码隐藏所有错误消息
- 类型 d告诉 find 搜索目录
- -姓名是要搜索的目录的名称。
这将为您提供名为 public_html 的所有目录的列表。您也可以使用以下方法搜索索引文件:
find /home 2>/dev/null -type f -name index.*
由于我们使用了通配符,因此它应该为您提供具有任何扩展名的所有索引文件的列表。
如果这可行但您只需要一个名称列表,您可以将 find 命令的结果传送给 awk,如下所示:
find /home 2>/dev/null -type f -name index.* | awk -F/ '{print $3}'
- -F/告诉 awk 将行分成 / 之后的部分。
- {打印$1}是第一个 / 之前的内容
- {打印$2}是第二个 / 之前的内容
- {打印$3}是第三个之前的内容 /
因此上述命令只会给出 /home/ 内的结果。主目录的名称。