我已经通过SSH / putty登录,并试图找到我的Web文件所在的位置。
因为我在通过FTP在名为httpdocs的目录中上载,我认为该目录存在于某个地方。
我的Google搜索教我这样做,请转到我的根目录并键入:
find httpdocs -type d
,但显示“没有这样的文件或目录”。
如何找到此目录?
#1 楼
它是:find / -type d -name 'httpdocs'
第一个参数“ /”是要查找的位置,在这种情况下,“ /”是整个系统。
-name可以是-iname以忽略大小写
-type不是必需的
use:man查找更多选项
评论
对于简单的搜索而言可能并不重要,但是对于更复杂的find命令而言,值得注意的是,事物是按照它们在命令行中的顺序进行评估的。因此,您可能希望在-name之前使用-type d(仅目录),以加快处理速度。同样,在这里这可能无关紧要,但是在进行更复杂的搜索时,它可以大大提高搜索速度。
–多米尼克·艾德森(Dominic Eidson)
09年6月28日在19:00
实际上,-name测试比大多数其他测试更快,因为-name与已经从磁盘加载的目录列表匹配,并且其他测试需要执行stat(2)来获取文件信息。在第一个stat()调用文件之后,随后的测试从内存中获取,例如:-type f -mtime -10。
–Arcege
2011-12-30 12:53
如果要在整个文件系统(尤其是服务器)上执行查找,那么通常最好使用nice,这样查找不会占用更多关键过程中的太多资源:nice find / ...
–Arcege
2011-12-30 12:54
我会附加2> / dev / null以避免我的搜索结果隐藏在所有权限错误中。
–杨Ja雄
13年8月21日在6:48
我喜欢伊娜美。
–neverMind9
19年7月4日在14:47
#2 楼
此命令可以为您提供所需的信息:find / -type d -name httpdocs
,它将从服务器的根目录中搜索名称为httpdocs的目录,或者如果您只是想在当前目录中搜索,用'。'替换'/'。
您可以尝试的另一条命令是找到您要执行的操作:
locate httpdocs
评论
定位httpdocs告诉我“定位:找不到命令”
–爱德华·唐格(Edward Tanguay)
09年6月28日在18:36
对于那些使用“ locate”命令(假定系统中已存在)的用户,请确保其查找的数据库是最新的。通常,一些cron工作会处理它。否则,请运行“ updatedb”(是root)。然后运行所需的“查找
–大卫·拉米雷斯(David Ramirez)
2012年11月2日23:23
+1查找。它要快很多,但前提是它的索引是最新的。幸运的是,像“ httpdocs”这样的东西不会经常更改位置。如果您打算重复搜索机器上的文件,那么值得花费几分钟来设置updated cron作业。
–道格·哈里斯(Doug Harris)
13年3月25日在18:57
同样在很多情况下,locate将返回太多结果,因为该目录中的所有100k文件都会显示。在这种特殊情况下,如果每个用户都有自己的带有100或1000个文件的httpdocs,则OP想要的结果可能会丢失。
–菊苣
14年7月16日在12:46
+1定位...我保持数据库更新,因此此命令非常有用...好主意。
–nicorellius
2014年8月25日23:01
#3 楼
find / -type d -name httpdocs 2> /dev/null
这将消除不以root用户身份执行操作时可能会(总是读取)的所有错误消息。建议这样做。
评论
2> / dev / null选项非常有用。否则很难看到想要的结果...
– Gottlieb Notschnabel
14年2月14日在18:59
另请参阅如何从“查找”中排除所有“拒绝权限”消息?
–加拉特
17 Mar 10 '17 at 10:06
#4 楼
重要的是要知道参数-iname来搜索“不区分大小写”模式和通配符的使用:* 、?等。两个示例:
搜索所有文件从/ root包含字符串“ Linux”,不区分大小写:
find /root -type f -iname "*linux*"
从/ root中搜索所有包含字符串“ Linux”,不区分大小写的目录:
find /root -type d -iname "*linux*"
从这里提取:
http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con -find.html
评论
这个问题是关于如何找到一个您知道名字的目录,而不是关于如何找到一个您知道名字的目录(大约)。此外,可接受的答案(来自6年前!)已经提到-iname是-name的不区分大小写的替代方案。
– G-Man说“恢复莫妮卡”
2015年12月7日,下午5:23
#5 楼
你几乎拥有它。正确的语法为:find / -type d -name httpdocs
目录可能在
/var/www/
下评论
告诉我“路径必须在表达之前”
–爱德华·唐格(Edward Tanguay)
09年6月28日在18:12
评论
如果有人想知道,问题中的命令会在目录条目httpdocs中找到所有目录(类型d)(相对于当前工作目录,通常但不一定是目录)。它失败并显示错误消息,因为系统的根目录中没有目录条目httpdocs,因此没有搜索起点。