Unix/Linux环境下,find命令为啥找不到".."目录(也就是上级目录对应的文件夹)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unix/Linux环境下,find命令为啥找不到".."目录(也就是上级目录对应的文件夹)相关的知识,希望对你有一定的参考价值。

find命令可以找到"."目录,也就是当前目录对应的文件夹
.和..都类似于软链接文件,而且不存在什么权限问题,为什么一个能找到一个找不到

find 命令只能在绝对路径下查找和当前目录下查找。不能在相对路径下查找。..是相对路径了。你如果不懂什么事绝对路径和相对路径可以上网再查查他们的区别 参考技术A find命令可以设置查找路径的,指在当前或者你设置的目录比如“/”根目录,“/”这已经是.了,在上一层不会查找或者还是当前的.目录。
比如查找home路径,它是不会去搜索上层目录的,只搜索下层目录,下层目录相对home是没有..这一层的。所以会搜不到追问

我并不是在根目录或者主目录下查找的,而且ls -a 以后 也有显示..和.两个目录

追答

你find目录就是搜索的当前目录,find是不会搜索上层目录的,当然不会有..了。我没有具体试过,这是我的理解。具体的应该涉及ls和find的机制了。

本回答被提问者采纳
参考技术B 需要注意执行路径的变量:$PATH

linux环境下的文件查找命令--find

熟悉linux的伙伴都知道,在开源的linux环境中,最主要的思想就是一切皆文件,linux中的任何东西都可被看作文件,那么我们在使用这些文件的时候就面临一个问题如何查找一个文件,在这里我以CentOS6.5虚拟机为例,做演示。

Linux下有多种查找文件指令:find、whereis、which和locate。

which:查看可执行文件的位置

 whereis:查看文件的位置

 locate:配合数据库查看文件

 find:实际搜寻硬盘查询

    其中find是最常用和最强大的查找命令。它能做到实时查找,精确查找,但速度慢。下面主要对find指令相关用法进行详细介绍。

首先打开虚拟机,并进入终端


find指令格式:【格式】find  [指定查找目录]  [查找规则]  [查找完后执行的action]

默认路径为:当前目录

默认查找完后执行的action为: -print。

查找完后执行的action有:

-print                         //默认情况下的动作,将查找到的文件输出到标准输出

-ls                              //查找到后用ls 显示出来

-exec [commend]      //find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \\;,注意{ }和\\;之间的空格。查找后执行命令的时候不询问用户,直接执行

-ok  [commend]        // 和-exec相同,只不过在操作前要询问用户是否要执行

用法示例:find -name filename -ls



find主要用法介绍: