Linux下搜索文件、文件名后缀

您所在的位置:网站首页 linux查找指定文件名 Linux下搜索文件、文件名后缀

Linux下搜索文件、文件名后缀

2024-07-10 10:03:48| 来源: 网络整理| 查看: 265

Linux下搜索文件

Linux系统是由文件组成的,所以搜索文件的功能也十分强大。

which查找命令可执行文件的绝对路径 1、which xx查看命令路径

用#which查看#rm命令可见,rm命令实际上是alias命令设置的带有-i选项的别名,#rm的绝对路径是/usr/bin/rm。

如果没有加选项,命令和绝对路径效果是一样的。

命令其实就是绝对路径的可执行文件,不过是命令加上了一些选项(可执行文件执行时会执行的一些参数)。想要执行命令,就要找到命令在什么路径,而系统会在环境变量的几个目录中寻找有没有输入的命令;

2、which查找的原理

which查找的原理是查环境变量中的文件是否有所查找的命令;

随便输入一个没有的命令,因为环境变量的路径中没有找到这个命令,所以会显示未找到命令;

我们把/usr/bin/ls文件复制一份到/tmp/ls2,然后执行/tmp/ls2,结果和/usr/bin/ls效果一样,但是如果我们直接用ls2命令,会告诉我们没有找到命令,用which查看会显示

/usr/bin/which: no ls2 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

意思是/usr/bin/which查询结果是在 (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)中没有找到ls2,而括号里面的一串绝对路径就是环境变量$PATH。在这里也可以知道which查询路径的时候是在环境变量PAHT的一堆路径变量里查询的。

所以也就是说如果想要用ls2命令,而不是用/tmp/ls2,就需要把ls2的路径也添加进环境变量PATH才行。

                                                                                                                                                                

whereis查找文件 1、whereis命令的作用

whereis命令用来定位    指令的二进制程序、源代码文件和man手册页等相关文件的路径。 模糊查找。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

和find相比,whereis查找的速度更快。因为linux系统会将系统内的所有文件都记录在一个数据库文件中,whereis和locate命令,只从数据库中查找数据。

find命令,通过遍历硬盘来查找,效率较低。

但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。  

2、whereis用法

语法:whereis [-bfmsu][文件名称]

补充:whereis指令会在特定目录中查找符合条件的文件。这些文件的属性应属于sourc files(源码),binary files(二进制文件),manual files(帮助文件)。

常用参数:

            -b  只查找二进制文件。

            -m  只查找说明文件(man目录下的文件)。

            -s  只查找原代码文件。

其他参数:

 -u  查找不包含指定类型的文件。

 -f  不显示文件名前的路径名称。

 -B  只在设置的目录下查找二进制文件。

 -M  只在设置的目录下查找说明文件。

 -S  只在设置的目录下查找原始代码文件。

 

3、使用案例:

随便找一个自己创建的文件是找不到的,因为系统数据库没有把这个文件更新进去;

 

# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz whereis 命令类似于模糊查找,只要文件名包含这个"ls"字符就会列出来。whereis命令使用比较少。

                                                                                                                                                            

locate命令查找文件 1、locate命令的作用

locate命令类似于whereis没命令,通过查找预先生成的文件列表库来告诉用户要查找的文件在哪,后面直接跟文件名。

不管是目录还是文件,只要包含要搜索的关键词都会列出来,所以也是模糊查找,locate命令使用的也不多。

2、安装locate命令包

如果没有locate命令,需要安装mlocate包;

#yum install -y mlocate

3、update命令更新文件列表库

# locate ls locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录

初次运行locate命令会报错,因为系统还没有生成文件列表库。

如果有mlocate.db文件有,就可以查询,这个文件每天会自动定时更新;也可以手动更新;

updatedb命令可以更新文件列表库。如果服务器正在执行重要业务,最好不要执行updatedb命令,因为一旦运行,服务器压力贵增大。这个数据库默认每周更新一次。

同whereis一样,如果搜索的文件正好是在两次更新的时间段内创建,那肯定搜索不到结果。

/etc/update.conf文件中可以配置这个数据库的更新规则。

4、locate命令用法

语法:locate [-d ][要查找的]

补充:locate指令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样式条件的文件或目录。

参数:

 -d或--database= 设置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/mlocate目录里,文件名为mlocate.db,可使用这个参数另行指定。

                                                                                                                                                               

find 1、find命令说明

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

2、find命令用法

语 法:find [路径] [参数]

find [路径] [-type df-lsb] [-name ] (目录d,文件f,二进制文件 -,软连接文件l,socket文件s,块设备文件b,串行端口设备文件c)

find [路径] [-type df-lsb][-atime/mtime/ctime -] [-name ]

find [路径] [-type df-lsb][-atime/mtime/ctime +] [-name ]

find [路径] [-type df-lsb][-atime/mtime/ctime ] [-name ]

(n指的是24hour*n, +n、-n、n分别表示:+n: 大于n;-n: 小于n;n:等于n)

find [目录]] [-type df-lsb] [-o] [-atime/mtime/ctime ] [-name ]

(-o 表示把条件选项由逻辑与改为逻辑或)

find [目录] [-type df-lsb][-amin/mmin/cmin -] [-name ]

find [目录] [-type df-lsb][-amin/mmin/cmin +] [-name ]

find [目录] [-type df-lsb][-amin/mmin/cmin ] [-name ]

(n指的是1min*n, +n、-n、n分别表示:+n: 大于n;-n: 小于n;n:等于n)

find [目录] [-type df-lsb] [-amin/mmin/cmin ] -exec ls -l {} \;

(把查找到的符合条件的文件列表中的文件的属性一并显示出来,末尾的;分号不可少,{}花括号表示列表中的每个文件)

find [目录] [-type df-lsb] [-amin/mmin/cmin ] -exec mv {} {}.xxx \;

(把查到到的目录符合条件的列表中的文件改名字,文件名后面加上.xxx,-exec后面的mv {} {}.xxx就是操作一行,\继续向下执行,直到最后。)

 

find [目录] [-inum ] (查找通过inode号查找文件,如硬连接)

find [目录] [-type df-lsb] [-size ]

find [目录] [-type df-lsb] [-size -]

find [目录] [-type df-lsb] [-size +]

(n指的是大小,可以是k、M, +n、-n、n分别表示:

+n: 大于n

-n: 小于n

n:等于n)

补 充:find指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲查找的目录。

 

3、find命令使用案例 3.1、按名称搜索

find 路径 -name filename(全称或者模糊名称)

# find /etc/ -name "sshd*" /etc/ssh/sshd_config /etc/systemd/system/multi-user.target.wants/sshd.service /etc/sysconfig/sshd /etc/pam.d/sshd

 

3.2、只搜索目录

find [目录] -type d -name 文件名 (只搜索目录)

[root@colinlinux ~]# find /etc/ -type d -name "ss*" /etc/ssl /etc/selinux/targeted/active/modules/100/ssh /etc/selinux/targeted/active/modules/100/sssd /etc/ssh 3.3、只搜索文件

find [目录] -type f -name 文件名 (只搜索文件)

[root@colinlinux ~]# find /etc/ -type f -name "sshd*" /etc/ssh/sshd_config /etc/sysconfig/sshd /etc/pam.d/sshd

 

3.4、按文件类型搜索

文件类型及符号对应表

f l d c b s p 普通文件 符号连接文件 目录文件 字符设备文件 块设备文件 套接字文件 FIFO文件

find 目录 -type c (只搜索串行端口设备c文件)

[root@colinlinux ~]# find /dev/ -type c /dev/dmmidi /dev/midi /dev/vsock /dev/vcsa6 /dev/vcs6 /dev/vcsa5 /dev/vcs5 /dev/vcsa4

 

atime ctime mtime

atime:access time,访问时间,

mtime:modefy time,修改时间,修改内容才会改变;

ctime:change time,改动状态时间,指文件的inode结点被修改的时间,如通过chmod修改文件权限,改文件名,改文件内容,改了创建时间等等,ctime就会被修改。

chmod修改文件权限ctime变化;

修改文件内容后mtime变化,ctime也变化;

只是访问读取文件,只有atime变化;

# find /etc/ -type f -mtime -1

查找当前目录在一天以内修改过的文件;

# find /etc/ -type f -o -mtime -1 -o -name ".conf"

-o表示逻辑或,这里由于文件太多只截取了末尾。

find [目录] [-inum ] (查找通过inode号查找文件,如硬连接)

# ln 1.txt /tmp/1_hardlink.txt 创建一个硬连级文件到同分区的其他目录;

# ls -l 1.txt 查看一下1.txt的信息发现有3个文件使用了相同的inode号;

# ls -i 1.txt 查询一下1.txt的节点号;

# find / -inum 35653405 找到inode号为35653405的文件所在,共3处;

 

stat

stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

语法:stat [选项] [参数]

选项:基本不用选项;

参数:文件名或目录;

补充:stat以文字的格式来显示inode的内容。

# find /root/ -type f -mmin -120 查找/root/中修改时间在200分钟以内的文件;

find [目录] [-type df-lsb] [-amin/mmin/cmin ] -exec ls -l {} \;

虽然命令稍长,但是在查找出来的文件数量较多的时候很实用;

# find /root/ -type f -mmin -120 -exec ls -l {} \;

find [目录] [-type df-lsb] [-amin/mmin/cmin ] -exec mv {} {}.xxx \;

# find /root/ -type f -mmin -70 -exec mv {} {}.bak \;

find [目录] [-type df-lsb] [-size ]

这样找到了文件大小符合条件的我们就可以对齐做一些操作了。

# find /root/ -type f -size -10k -exec ls -lh {} \;

 

LANG修改系统语言

1、echo $LANG查看当前语言

[root@colinlinux ~]# echo $LANG//查看当前环境的语言变量 zh_CN.UTF-8 2、locale命令

功 能:显示当前环境不同位置的语言类型。

语 法:locale

补 充: LC_COLLATE,定义该环境的排序和比较规则

LC_CTYPE,用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。 LC_MONETARY,货币格式

LC_NUMERIC,非货币的数字显示格式

LC_TIME,时间和日期格式

LC_MESSAGES,提示信息的语言。

#locale

3、修改系统语言类型

LANG=[语言类型]

功 能:设置语言类型;

语 法:LANG=[语言类型]

补 充:这里只是临时修改,永久修改要改配置文件,centos7中修改语言的配置文件在/etc/locale.conf

参 数:zh_CN.UTF-8

en_US

文件名后缀

.txt,.zip等在window中被叫做“后缀名”,虽然这些后“后缀名”在linux中也有出现,但是linux中他们并没有任何意义,只不过是人为习惯性的加上去的,方便人为操作,linux中的后缀名可以随便取,也可以没有,系统根本不管这些。

人为习惯上.sh表示脚本,.tar.gz表示压缩包,.cnf表示配置文件等,这只是人为习惯,也可以不必遵循。

目前linux文件名最长可以允许225个字符。

 

 

 

 

 

  文件名后缀


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭