Linux的find命令与文件名后缀
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的find命令与文件名后缀相关的知识,希望对你有一定的参考价值。
find命令:
find命令是用于搜索文件的,which是在环境变量中搜索,whereis是在准备好的库里搜索,locate是通过数据文件进行搜索。
在最小化安装的系统中一般locate命令是需要自己安装的,,安装的命令是:yun install -y mlocate
安装完后,这时locate命令还无法使用,因为locate依赖的数据文件还没有生成,这个文件相当于这个命令的数据库,你系统上文件的路径都会存放在这里,然后locate命令就是通过这个文件去搜索你指定的文件,这时需要使用updatedb命令生成一下此数据文件,这个命令也可以用于更新此文件,一般此文件会在凌晨四点自动更新:
从搜索结果可以看出,只要是带有Test1的文件路径都会被检索出来,这属于是一种模糊搜索,并不是精确搜,所以locate命令使用的比较少。
最常使用的是find命令,find最简单的用法是指定一个范围这个范围可以是系统目录或文件夹,然后指定具体的文件名称,例如我要在etc目录下找sshd_config文件:
使用通配符*可以进行模糊搜索:
指定寻找的是目录需要加-type d,指定寻找的是文件则需要加-type f(-),-type表示的就是文件类型,所以可以使用-type这个条件参数指定所要检索的文件类型:
指定寻找的是软链接文件需要加-type l:
指定寻找的是块设备文件需要加-type b:
指定寻找的是字符串设备文件需要加-type c:
指定寻找的是通信文件需要加-type s:
更改了文件的内容-ctime一定会改变,但改文件的权限-mtime是不会改变的。
find命令中的-atime选项是用来指定所要查找的文件的最近访问时间,例如我要在root目录中找一天以内访问过的文件,或一天以外访问过的文件:
find /root/ -type f -atime -1 //一天以内
find /root/ -type f -atime +1 //一天以外
find命令中的-mtime选项是用来指定所要查找的文件的最近更改或创建时间,例如我要在root目录中找一天以内更改过的文件,或一天以外更改过的文件:
find /root/ -type f -mtime -1 //一天以内
find /root/ -type f -mtime +1 //一天以外
find命令中的-ctime选项是用来指定所要查找的文件的最近改动时间,例如我要在root目录中找一天以内改动过的文件,或一天以外改动过的文件:
find /root/ -type f -ctime -1 //一天以内
find /root/ -type f -ctime +1 //一天以外
如果在find命令里加多个参数条件的就是并且的意思,也就是说查找的文件要满足这些指定的条件。
例如:find /etc/ -type f -mtime -1 -name “*.conf”
这条命令的意思是:查找etc目录下的文件,此文件的最近更改时间或创建时间是一天以内的,并且此文件的后缀必须是conf。
想要这些参数条件起的作用不是并且而是或者的话,需要在参数条件加 -o 。
例如:find /root/ -type f -o -mtime -1 -o -name “*.conf”
这条命令的意思是:查找root目录下的文件,或者查找最近更改时间或创建时间是一天以内的文件,或者此文件的后缀是conf的,只要满足其中一个条件都会被查找出来。
使用find命令查找硬链接文件:
命令如下:
find / -inum inode号
例如:我要找a_123.txt的硬链接文件,首先得查看这个文件的inode号,然后将inode号放在命令的末尾:
使用find命令查找root目录下一小时以内更改过的文件:
find /root/ -type f -mmin -60
那个表示分钟的数字可以改变,例如想查看两个小时以内的就使用-120,以此类推。
使用find命令查找文件的同时执行ls -l命令:
命令如下:
find /root/ -type f -mmin -60 -exec ls -l {} \;
{}表示的是查找到的批量文件里其中之一的意思。
使用find命令查找文件的同时执行mv命令:
命令如下:
find /root/ -type f -mmin -60 -exec mv {} {}.bak \;
将查找出来的文件都重命令了
find命令中的-size参数条件可以指定查找文件的大小,例如:查找root目录下大于10k的文件或者查找root目录下小于10k的文件。
命令如下:
find /root/ -size +10
find /root/ -size -10
同样的可以同时执行ls -lh命令查看检索出来的文件的大小:
命令如下:
find /root/ -type f -size -10k -exec ls -lh {} \;
使用M单位的话M要大写:
find /root/ -type f -size -10M -exec ls -lh {} \;
文件的后缀:
在Linux中是严格区分大小写的,所以a不等于A。在Linux中的文件后缀并不严谨,可以随意自定义后缀名。而在Windows中,文件的后缀名是绑定着执行程序的。所以在Linux上文件的后缀并不代表这个文件的类型。
在Linux中可以通过LANG变量更改当前环境的语言,例如更改为英文就是:LANG=en
本文出自 “12831981” 博客,请务必保留此出处http://12841981.blog.51cto.com/12831981/1972042
以上是关于Linux的find命令与文件名后缀的主要内容,如果未能解决你的问题,请参考以下文章
Linux CentOS7 VMware find命令文件名后缀
find命令文件名后缀以及Linux和Windows互传文件