Ubuntu查找文件的命令

find


find命令准确,但速度非常慢,它可以查找任何类型的文件

使用格式如下

find [指定目录] [指定条件] [指定动作]
  • 1

参数说明

  • [指定目录]: 所要搜索的目录及其所有子目录。默认为当前目录
  • [指定条件]: 所要搜索的文件的特征
  • [指定动作]: 对搜索结果进行特定的处理


常用的[指定条件]

  • -name:按文件名来查找文件
  • -user:按照文件的属主来查找文件
  • -group:按照文件所属的组来查找文件
  • -perm:按照文件权限来查找文件
  • -prune:不在当前指定目录中查找


常用的[指定动作]

  • -print:将匹配的文件输出到标准输出
  • -exec:对匹配的文件执行该参数所给出的shell命令
  • -ok:和-exec的作用相同,在执行每一个命令之前,让用户来确定是否执行


find命令不加任何参数时,表示搜索路径为当前目录及其子目录,默认的动作为-print,即不过滤任何结果,也就是说输出所有的文件

使用实例

递归搜索当前目录中,所有以file开头的文件

find . -name 'file*'
  • 1

递归搜索当前目录中,所有以file开头的文件,并显示它们的详细信息

find . -name 'file*' -ls
  • 1

locate


locate命令可以说是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息

Linux自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库

使用格式如下

locate [参数] <文件名>
  • 1

使用实例

搜索etc目录下所有以file开头的文件

locate /etc/file
  • 1

搜索用户主目录下,所有以f开头的文件,并且忽略大小写

locate -i ~/f
  • 1

whereis


whereis命令只能搜索特定格式的文件

使用格式如下

whereis [参数] <文件名>
  • 1

可搜索的文件类型

  • 二进制文件(-b)
  • 源代码文件(-s)
  • 说明文件(-m)


如果省略参数,则返回所有信息

使用实例

找出名为find的文件位置

whereis find
  • 1

which


which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

使用格式如下

which <命令>
  • 1

使用实例

查找find命令的位置

which find
  • 1

type


type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的

如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令

使用格式如下

type <命令>
  • 1

使用实例

type cd
  • 1

系统会提示,cdshell的自带命令build-in

type grep
  • 1

系统会提示,grep是一个外部命令,并显示该命令的路径

type -p grep
  • 1

加上-p参数后,就相当于which命令

感觉比较好用的是locate命令,速度非常快,还能达到find命令一样的准确,只需要先用updatedb命令更新数据库

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值