前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux的find命令与文件名后缀

Linux的find命令与文件名后缀

作者头像
端碗吹水
发布2020-09-23 10:05:35
5.2K0
发布2020-09-23 10:05:35
举报

find命令:

find命令是用于搜索文件的,which是在环境变量中搜索,whereis是在准备好的库里搜索,locate是通过数据文件进行搜索。

在最小化安装的系统中一般locate命令是需要自己安装的,,安装的命令是:yun install -y mlocate

wKiom1ngUh_jhN2MAAQGwb5ax0Q427.png
wKiom1ngUh_jhN2MAAQGwb5ax0Q427.png

安装完后,这时locate命令还无法使用,因为locate依赖的数据文件还没有生成,这个文件相当于这个命令的数据库,你系统上文件的路径都会存放在这里,然后locate命令就是通过这个文件去搜索你指定的文件,这时需要使用updatedb命令生成一下此数据文件,这个命令也可以用于更新此文件,一般此文件会在凌晨四点自动更新:

wKiom1ngUh_jBr-qAAIRhAQx6Vc900.png
wKiom1ngUh_jBr-qAAIRhAQx6Vc900.png
wKioL1ngT2mD_hPbAAGYPn-NS_g047.png
wKioL1ngT2mD_hPbAAGYPn-NS_g047.png

从搜索结果可以看出,只要是带有Test1的文件路径都会被检索出来,这属于是一种模糊搜索,并不是精确搜,所以locate命令使用的比较少。

  最常使用的是find命令,find最简单的用法是指定一个范围这个范围可以是系统目录或文件夹,然后指定具体的文件名称,例如我要在etc目录下找sshd_config文件:

wKiom1ngUiDCyZr2AAG4JxZYRpA895.png
wKiom1ngUiDCyZr2AAG4JxZYRpA895.png

使用通配符*可以进行模糊搜索:

wKioL1ngT2viECO5AALM-nRH11I465.png
wKioL1ngT2viECO5AALM-nRH11I465.png

  指定寻找的是目录需要加-type d,指定寻找的是文件则需要加-type f(-),-type表示的就是文件类型,所以可以使用-type这个条件参数指定所要检索的文件类型:

wKioL1ngT22hNv6pAARV1hPiOS4664.png
wKioL1ngT22hNv6pAARV1hPiOS4664.png

指定寻找的是软链接文件需要加-type l:

wKiom1ngUiyC0KPyABDGEydU-Ro546.png
wKiom1ngUiyC0KPyABDGEydU-Ro546.png

指定寻找的是块设备文件需要加-type b:

wKioL1ngT3eA8DwHAALH1PCe5x8070.png
wKioL1ngT3eA8DwHAALH1PCe5x8070.png

指定寻找的是字符串设备文件需要加-type c:

wKiom1ngUjCz_oZWAARpyUapc_Y119.png
wKiom1ngUjCz_oZWAARpyUapc_Y119.png

指定寻找的是通信文件需要加-type s:

wKioL1ngT3mQYtQWAAERqoB3MX0621.png
wKioL1ngT3mQYtQWAAERqoB3MX0621.png

stat命令是查看一个文件或目录的详细信息的:

wKiom1ngUjLykBC8AAUHg09ZAjk617.png
wKiom1ngUjLykBC8AAUHg09ZAjk617.png
wKiom1ngUjSBotkYAAU4M2tr5YA399.png
wKiom1ngUjSBotkYAAU4M2tr5YA399.png

更改了文件的内容-ctime一定会改变,但改文件的权限-mtime是不会改变的。

find命令中的-atime选项是用来指定所要查找的文件的最近访问时间,例如我要在root目录中找一天以内访问过的文件,或一天以外访问过的文件:

find /root/ -type f -atime -1  //一天以内

wKioL1ngT36wkMKtAAG27Hk-h-A456.png
wKioL1ngT36wkMKtAAG27Hk-h-A456.png

find /root/ -type f -atime +1  //一天以外

wKiom1ngUjaS232FAANR4Jq_Rnw120.png
wKiom1ngUjaS232FAANR4Jq_Rnw120.png

find命令中的-mtime选项是用来指定所要查找的文件的最近更改或创建时间,例如我要在root目录中找一天以内更改过的文件,或一天以外更改过的文件:

find /root/ -type f -mtime -1  //一天以内

wKioL1ngT4DCGHqeAAGjLCjwkDE380.png
wKioL1ngT4DCGHqeAAGjLCjwkDE380.png

find /root/ -type f -mtime +1  //一天以外

wKiom1ngUjjgR2nKAASSs4ZG2Ow226.png
wKiom1ngUjjgR2nKAASSs4ZG2Ow226.png

find命令中的-ctime选项是用来指定所要查找的文件的最近改动时间,例如我要在root目录中找一天以内改动过的文件,或一天以外改动过的文件:

find /root/ -type f -ctime -1  //一天以内

wKioL1ngT4LhsEAJAAGWPSvhiWQ661.png
wKioL1ngT4LhsEAJAAGWPSvhiWQ661.png

find /root/ -type f -ctime +1  //一天以外

wKioL1ngT4WzfDWwAAQbwrwJoUc346.png
wKioL1ngT4WzfDWwAAQbwrwJoUc346.png

如果在find命令里加多个参数条件的就是并且的意思,也就是说查找的文件要满足这些指定的条件。

例如:find /etc/ -type f -mtime -1 -name “*.conf”

这条命令的意思是:查找etc目录下的文件,此文件的最近更改时间或创建时间是一天以内的,并且此文件的后缀必须是conf。

wKiom1ngUjzCLxqZAAJf5zodtDM889.png
wKiom1ngUjzCLxqZAAJf5zodtDM889.png

想要这些参数条件起的作用不是并且而是或者的话,需要在参数条件加 -o 。

例如:find /root/ -type f -o -mtime -1 -o -name “*.conf”

这条命令的意思是:查找root目录下的文件,或者查找最近更改时间或创建时间是一天以内的文件,或者此文件的后缀是conf的,只要满足其中一个条件都会被查找出来。

wKiom1ngUkHg6-MCAAozUA_Y-AU387.png
wKiom1ngUkHg6-MCAAozUA_Y-AU387.png

使用find命令查找硬链接文件:

命令如下:

find / -inum inode号

例如:我要找a_123.txt的硬链接文件,首先得查看这个文件的inode号,然后将inode号放在命令的末尾:

wKioL1ngT4yQAqtyAAI9JvoNC_A346.png
wKioL1ngT4yQAqtyAAI9JvoNC_A346.png

使用find命令查找root目录下一小时以内更改过的文件:

find /root/ -type f -mmin -60

wKioL1ngT4yTKv9JAAINiL3TS8A767.png
wKioL1ngT4yTKv9JAAINiL3TS8A767.png

那个表示分钟的数字可以改变,例如想查看两个小时以内的就使用-120,以此类推。

使用find命令查找文件的同时执行ls -l命令:

命令如下:

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

wKiom1ngUkOA1QsSAAG_kgl0ZJE967.png
wKiom1ngUkOA1QsSAAG_kgl0ZJE967.png

{}表示的是查找到的批量文件里其中之一的意思。

使用find命令查找文件的同时执行mv命令:

命令如下:

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

wKioL1ngT4-TzRi0AAWGSEfc-WQ911.png
wKioL1ngT4-TzRi0AAWGSEfc-WQ911.png

将查找出来的文件都重命令了

find命令中的-size参数条件可以指定查找文件的大小,例如:查找root目录下大于10k的文件或者查找root目录下小于10k的文件。

命令如下:

find /root/ -size +10

wKioL1ngT5CSztTWAAEoHEoBgQI568.png
wKioL1ngT5CSztTWAAEoHEoBgQI568.png

find /root/ -size -10

wKiom1ngUkqyv9xMAAiSBEcop3s391.png
wKiom1ngUkqyv9xMAAiSBEcop3s391.png

同样的可以同时执行ls -lh命令查看检索出来的文件的大小:

命令如下:

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

wKiom1ngUk2CQ5HkAAeduafxuWo890.png
wKiom1ngUk2CQ5HkAAeduafxuWo890.png

使用M单位的话M要大写:

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

wKioL1ngT5ui5y78AAiXfEzjz_M515.png
wKioL1ngT5ui5y78AAiXfEzjz_M515.png

文件的后缀:

在Linux中是严格区分大小写的,所以a不等于A。在Linux中的文件后缀并不严谨,可以随意自定义后缀名。而在Windows中,文件的后缀名是绑定着执行程序的。所以在Linux上文件的后缀并不代表这个文件的类型。

在Linux中可以通过LANG变量更改当前环境的语言,例如更改为英文就是:LANG=en

wKioL1ngUVuQDrI3AAWxpteUPJg473.png
wKioL1ngUVuQDrI3AAWxpteUPJg473.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档