如何通过find / d命令搜索目录且避免列出全部目录?
解决
find命令输出大量目录的问题 嘿,我猜你是因为find命令的参数没写对,才导致它一股脑输出了服务器上所有目录对吧?这是个很常见的小失误,咱们来快速搞定它:
1. 先修正你的find命令
你之前输入的find / d <directory>语法有误,find如果没收到明确的匹配条件,就会默认遍历指定路径下的所有内容并输出。正确的查找特定目录的命令应该是这样的:
find / -type d -name "你要找的目录名"
这里的参数作用:
-type d:限定只查找目录(不会把文件、链接等其他类型的对象列出来)-name "你要找的目录名":明确指定目标目录的名称,加双引号是为了避免目录名包含空格时出现问题
2. 屏蔽烦人的权限错误提示
学校服务器里很多系统目录或者其他用户的目录你没有访问权限,find会输出一堆Permission denied的错误信息,这也会让终端显得很乱。你可以把这些错误信息直接丢弃:
find / -type d -name "你要找的目录名" 2>/dev/null
这里的2>/dev/null是把标准错误(也就是那些权限提示)重定向到系统的“空设备”里,不会显示在你的终端上。
3. 额外小技巧:缩小搜索范围
如果知道目标目录大概在某个路径下(比如/usr/local或者某个用户目录),直接限定搜索路径可以大幅减少遍历的内容,速度也会快很多:
find /usr/local -type d -name "你要找的目录名" 2>/dev/null
这样调整之后,find就只会输出你真正需要的目录,不会再刷一堆无关内容啦~
内容的提问来源于stack exchange,提问作者adamrork
相关产品推荐
相关产品推荐

