Linux下搜索文件、文件名后缀 |
您所在的位置:网站首页 › linux查找指定文件名 › Linux下搜索文件、文件名后缀 |
Linux下搜索文件
Linux系统是由文件组成的,所以搜索文件的功能也十分强大。 which查找命令可执行文件的绝对路径 1、which xx查看命令路径用#which查看#rm命令可见,rm命令实际上是alias命令设置的带有-i选项的别名,#rm的绝对路径是/usr/bin/rm。 如果没有加选项,命令和绝对路径效果是一样的。 命令其实就是绝对路径的可执行文件,不过是命令加上了一些选项(可执行文件执行时会执行的一些参数)。想要执行命令,就要找到命令在什么路径,而系统会在环境变量的几个目录中寻找有没有输入的命令; 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/sshd3.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/sshd3.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/vcsa4atime 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 LANG=[语言类型] 功 能:设置语言类型; 语 法:LANG=[语言类型] 补 充:这里只是临时修改,永久修改要改配置文件,centos7中修改语言的配置文件在/etc/locale.conf 参 数:zh_CN.UTF-8 en_US .txt,.zip等在window中被叫做“后缀名”,虽然这些后“后缀名”在linux中也有出现,但是linux中他们并没有任何意义,只不过是人为习惯性的加上去的,方便人为操作,linux中的后缀名可以随便取,也可以没有,系统根本不管这些。 人为习惯上.sh表示脚本,.tar.gz表示压缩包,.cnf表示配置文件等,这只是人为习惯,也可以不必遵循。 目前linux文件名最长可以允许225个字符。
文件名后缀 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |