本文主要用于介绍几种Linux常用的查找文件的方法
1. find
find命令是Linux在查找文件所在位置时最常使用的命令之一,一般是直接通过文件名进行查询所在位置。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
复制代码
在进行搜查的时候,主要有以下三种选项,其中前两种是我们使用比较多的
-name: 按照文件名搜索;
-iname: 按照文件名搜索,不区分文件名大小;
-inum: 按照 inode 号搜索;
复制代码
例如在当前目录下查找我所想要的application.js,,可以看到该文件是在js目录下,-iname选项的用法也是类似的
GENGKAIYU-MB0:public onlyone$ ls -rlt
total 32
drwxr-xr-x 3 onlyone staff 96 12 17 16:20 links
drwxr-xr-x 3 onlyone staff 96 12 17 16:20 about
drwxr-xr-x 3 onlyone staff 96 12 17 16:20 tags
-rw-r--r-- 1 onlyone staff 110 12 17 16:20 baidusitemap.xml
-rw-r--r-- 1 onlyone staff 1280 12 17 16:20 content.json
drwxr-xr-x 3 onlyone staff 96 12 17 16:20 categories
drwxr-xr-x 3 onlyone staff 96 12 17 16:20 repository
-rw-r--r-- 1 onlyone staff 898 12 17 16:20 sitemap.xml
drwxr-xr-x 5 onlyone staff 160 12 17 16:20 images
-rw-r--r-- 1 onlyone staff 3285 12 17 16:20 favicon.png
drwxr-xr-x 7 onlyone staff 224 12 17 16:20 fonts
drwxr-xr-x 9 onlyone staff 288 12 17 16:20 js
drwxr-xr-x 4 onlyone staff 128 12 17 16:20 css
GENGKAIYU-MB0:public onlyone$ find ./ -name application.js
.//js/application.js
GENGKAIYU-MB0:public onlyone$
复制代码
但是find命令是必须要求完全匹配的,当你想要使用正则表达式的时候会出现如下错误(这个问题当文件与搜索目录在同一级时会出现)
GENGKAIYU-MB0:js onlyone$ find ./ -name app*
find: application.min.js: unknown primary or operator
复制代码
在这种情况下可以通过在如下方法进行解决
//切换到上级目录
GENGKAIYU-MB0:public onlyone$ find ./ -name app*
.//js/application.min.js
.//js/application.js
//在搜索内容前加上引号
GENGKAIYU-MB0:js onlyone$ find ./ -name 'app*'
.//application.min.js
.//application.js
复制代码
2. which & whereis
这两个命令更多的倾向于一些可执行的命令或文件
which其实查找的是每个Linux系统Path目录下的可执行文件
//先查看我的PATH变量
GENGKAIYU-MB0:gblog onlyone$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/go/bin:/Users/onlyone/Downloads/apache-maven-3.6.3/bin
GENGKAIYU-MB0:gblog onlyone$ ls -lrt /usr/local/bin/
total 8
lrwxr-xr-x 1 onlyone admin 28 3 31 2020 brew -> /usr/local/Homebrew/bin/brew
lrwxr-xr-x 1 onlyone admin 30 3 31 2020 telnet -> ../Cellar/telnet/63/bin/telnet
lrwxr-xr-x 1 onlyone admin 37 4 2 2020 corkscrew -> ../Cellar/corkscrew/2.0/bin/corkscrew
lrwxr-xr-x 1 onlyone admin 38 4 2 2020 pcre2-config -> ../Cellar/pcre2/10.34/bin/pcre2-config
lrwxr-xr-x 1 onlyone admin 35 4 2 2020 pcre2grep -> ../Cellar/pcre2/10.34/bin/pcre2grep
lrwxr-xr-x 1 onlyone admin 35 4 2 2020 pcre2test -> ../Cellar/pcre2/10.34/bin/pcre2test
lrwxr-xr-x 1 onlyone admin 28 4 2 2020 git -> ../Cellar/git/2.26.0/bin/git
lrwxr-xr-x 1 onlyone admin 38 4 2 2020 git-cvsserver -> ../Cellar/git/2.26.0/bin/git-cvsserver
lrwxr-xr-x 1 onlyone admin 41 4 2 2020 git-receive-pack -> ../Cellar/git/2.26.0/bin/git-receive-pack
lrwxr-xr-x 1 onlyone admin 34 4 2 2020 git-shell -> ../Cellar/git/2.26.0/bin/git-shell
lrwxr-xr-x 1 onlyone admin 43 4 2 2020 git-upload-archive -> ../Cellar/git/2.26.0/bin/git-upload-archive
lrwxr-xr-x 1 onlyone admin 40 4 2 2020 git-upload-pack -> ../Cellar/git/2.26.0/bin/git-upload-pack
-rwxr--r-- 1 onlyone staff 3754 4 2 2020 idea
lrwxr-xr-x 1 root admin 42 4 10 2020 bf -> /usr/local/bifrost/bin/bifrostClient.1.0.0
lrwxr-xr-x 1 root admin 41 4 10 2020 bfAgent -> /usr/local/bifrost/bin/bifrostAgent.1.0.0
lrwxr-xr-x 1 onlyone admin 31 12 14 17:31 node -> ../Cellar/node/13.12.0/bin/node
lrwxr-xr-x 1 onlyone admin 33 12 14 17:54 hexo -> ../lib/node_modules/hexo/bin/hexo
lrwxr-xr-x 1 onlyone admin 38 12 15 21:33 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x 1 onlyone admin 38 12 15 21:33 npx -> ../lib/node_modules/npm/bin/npx-cli.js
/如上 telnet的命令存储于/usr/local/bin/telnet目录下
GENGKAIYU-MB0:gblog onlyone$ which telnet
/usr/local/bin/telnet
复制代码
whereis与which类似,只不过它的查找范围更广,不通过PATH变量进行查找,通过文件索引进行查找
[root@iz2ze0ldeq21cpwq3l04yzz ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@iz2ze0ldeq21cpwq3l04yzz ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
复制代码
本文来自:原文链接