在Linux常用的命令中,有些命令可以帮助我们找到二进制文件、帮助手册或源文件的位置,有些命令可以帮助我们找到磁盘上的任何文件。今天,我们将看看如何使用这些命令。
哪个
哪个命令在PATH变量指定的路径中搜索系统命令的位置。例如:
哪一个-哪一个#来查看命令所在的位置,-一个参数意味着找出所有
/usr/bin/哪个
/bin/哪个
PATH变量的内容是什么?我们来看看(不同的电脑可能不一样):
echo $PATH
/home/hyb/bin:/home/hyb/。local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/JVM/Java-8-Oracle/bin:/usr/lib/JVM/Java-8-Oracle/db/bin:/usr/lib/JVM/Java-8-Oracle/JRE/bin
PATH环境变量存储一些PATH信息,例如/usr/bin。当您在shell终端中键入命令时,该命令不存在于路径中包含的路径下,并且不是内置命令,系统将提示您:找不到命令。
当您安装了一个命令,但在使用它时,会提示您找不到该命令。您可以检查环境变量,查看是否有安装该命令的路径。
那么你明白为什么有些命令或者程序需要添加环境变量才能直接使用吗?
哪里
whereis命令用于搜索程序二进制文件、源代码文件或帮助文档。例如:
ls #在哪里如果三个都可用,那么三个都会显示出来。
ls:/bin/ls/usr/share/man/man 1/ls . 1 . gz
仅查看ls的帮助手册
ls: /usr/share/man/man1/ls.1.gz
其中-b ls #只找到ls的二进制文件
ls: /bin/ls
stdio.h #在哪里找到stdio.h头文件和帮助手册
stdio:/usr/include/stdio . h/usr/share/man/man 3/stdio . 3 . gz
同样,它也找不到内置命令。
类型
类型用于查看命令类型,一般有以下类型:
别名:别名
关键词:关键词
内置:内置命令
文件:外部命令
常见参数如下:
-t输出类型名称,如文件
-p如果是外部命令,则显示其路径
-a对于外部命令,它显示命令路径、命令类型和其他信息
让我们看几个例子:
类型ls #ls是一个别名
ls别名为` ls - color=auto '
键入cd #cd是一个内置命令
cd是一个内置的外壳
类型查找
查找is /usr/bin/find
类型函数#function是shell关键字
函数是shell关键字
键入-a,其中#显示所有路径
哪个是/usr/bin/哪个
哪个是/箱子/哪个
定居
上述命令仅限于查找命令、帮助手册或源文件,而定位用于快速查找任何文件。它在不遍历磁盘的情况下从系统数据库中搜索文件,因此速度极快。系统数据库一般一天更新一次(可以查看系统的/etc/cron.daily/mlocate,不同系统可能会有所不同)。
常见选项如下:
-e仅查找现有文件
-q安静模式,不会显示错误信息
-n最多显示n个输出
-r使用正常表达式
-我搜索忽略案例
-c打印匹配结果的数量
假设当前目录中已经存在以下文件:
locate.txt locate.log LOCATE.
我们来看一些例子。
快速查找文件
定位定位. txt #查找定位. txt
/home/hyb/workspaces/shell/locate/locate . txt
查找现有文件
查找定位. txt #搜索前删除定位. txt
#虽然文件不存在,但还是被发现了
/home/hyb/workspaces/shell/locate/locate . txt
locate -e locate.txt #-e参数只能找到现有文件
(因为文件不存在,所以找不到。)
查找计算文件的数量
Locate -c locate.log #只计算找到的数量
一个
忽略案例查找
定位-我定位.
/home/hyb/workspaces/shell/locate/LOCATE .
使用正则表达式
普通搜索是模糊匹配的,所以只要目标名字包含了要搜索的名字,就会被搜索出来,但是我们可以用正则表达式来准确的找到。
找到以/locate.log结尾的文件。
结合正则表达式,locate有更丰富的搜索方式,这里不展开。
定位搜索的一个问题是,如果文件最近被删除,它仍然可以找到文件,但是如果文件最近被添加,它就找不到文件。也就是说它的搜索不是实时的。当然,我们可以手动执行updatedb命令来更新数据库(可能需要root权限)。
发现
find命令是linux中下一个强大的搜索命令。与locate命令相比,它需要遍历磁盘文件,因此搜索速度较慢,但正因为如此,它的实时性比locate好得多。另一方面,find命令具有比locate更丰富的搜索条件。
根据名称
恐怕最常用的条件是文件名,涉及参数-name,-iname,例如:
在当前目录中查找以排序开头的文件:
找到。/-名称“sort*”
。/sort4.txt
。/sort2.txt
。/sort3.txt
。/sort.txt
找到。/-" in ame " SORT . txt " #忽略大小写
。/sort.txt
服从权威
有时您需要查找具有特定权限的文件,您可以使用-perm参数,例如,在当前目录中查找具有777权限的文件:
找到。/ -perm 777
。/test
。/sort.txt
取决于文件类型
涉及参数类型,例如,在当前目录中查找符号链接文件:
找到。/-l型
。/test
ls -al试验
lrwxrwx 1 hyb hyb 8 11月24日10: 10测试->: home.
主要类型有:
普通文件
d目录
闭塞设备文件
字符设备文件
l符号链接
s插座
管道文件
视文件大小而定
涉及参数大小,例如:
找到。/-1k大小#在当前目录中查找小于1k的文件
。/test
。/sort4.txt
。/sort2.txt
。/sort3.txt
。/test.sh
。/sort.txt
查找大小+1M #在当前目录中查找大于1M的文件
。/test.
常用单位有:
k千字节
m兆字节
千兆字节
c字节
b块,一般512字节
w字大小,两个字节
在归属的条件下
涉及-user、-nouser、-group、-nogroup等参数。,例如:
找到。/-用户根#在当前目录中查找根用户的文件
找到。/ -nouser #在当前目录中查找根用户的已删除文件
-group,-nogroup的用法类似,仅当它是用户组时。
在时间的条件下
涉及的参数有-mtime,-atime,-ctime,-new,-anewer,-cnewer,-amin,-cmin等。,例如:
找到。/ -mtime 3 #查找3天前更改的文件
找到。/ -mtime -3 #查找3天内发生更改的文件
找到。/ -mtime 0 #查找今天更改的文件
找到。/-new sort.txt #查找比sort . txt的修改时间新的文件
找到。/-a新的sort.txt #查找比sort.txt的访问时间新的文件
找到。/ -amin 5 #查找5分钟前访问的文件
注意:
上次访问时间
时间的最后修改时间
ctime的最后修改时间,包括属性和权限
find命令有很多搜索条件,用法也很丰富。本文只是简单介绍一下,后面的文章会介绍一些find的高级用法。
摘要
哪个命令可用于查找命令位置。
在哪里可以找到命令、手册、源文件等的位置。
哪一个或哪一个都找不到内置命令的位置。
定位的优点:找到速度块;缺点:匹配模糊,匹配路径,实时性差。
find的优点:搜索准确,功能丰富;缺点:速度慢。
find的高级用法将在后面的文章中介绍。
原文来自:https://www.linuxprobe.com/linux-quick-technique.html
1.《linux查找文件 Linux系统快速查找文件的技巧》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《linux查找文件 Linux系统快速查找文件的技巧》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1361043.html