9月18日任务
2.23/2.24/2.25 find命令
2.26 文件名后缀
find命令
linux上常用的查找命令有:which、whereis、locate、find。which用来查找PATH变量路径中的命令位置。whereis依靠系统生成的库查找文件,库更新有滞后可能查找结果不全。locate在mlocate包中,没有可以用yum install -y mlocate
安装。locate依靠生成的db数据库查找,每天自动更新一次数据库,也可手动更新updatedb
。
以上三个命令使用上有限止,功能也不全,find可以很好解决问题。find可以说linux里重要的工具之一,参数很丰富。find /P/A/T/H/ [-option]
,可以用man查看具体参数。常用的参数有:
- name:指定文件名,用引号引用,支持统配符
- regex:支持正则表达式,不了解正则的可以直接忽略,不常用也不好用。
iregex
忽略大小写 - type:指定文件类型,常用的文件类型有文件f、目录d、链接l、块设备b、字符设置c、套接字文件s。
- inum:指定inode,常用来查找硬链接或者可以删除文件名乱码的文件
- atime:指定文件最后访问时间,通常用<和>划定最后访问时间范围,单位为天。参数amin单位为分钟
- ctime:指定文件最后change时间,通常用<和>划定最后访问时间范围,单位为天。参数amin单位为分钟
- mtime:指定文件最后modify时间,通常用<和>划定最后访问时间范围,单位为天。参数amin单位为分钟
- size:指定文件大小,通常指定范围
关于access、modify、change,access很容易理解,touch、cat命令都产生访问效果。modify具体指修改了文件内容,change则是修改了文件属性或内容。也就是说chmod命令只更改ctime,修改文件内容则会更改ctime和mtime。用stat file
可以查看文件的详细信息,信息比ls -l更多。
exec常与find配合使用:find /etc/ -type f -mmin -120 -exec ls -l {} \;
exec类似管道,将前面find的标准输出给到后面命令。这个命令就是查找/etc/目录下modify时间在120分钟内的文件,并列出这些文件的详细信息。
文件后缀
加上前几篇,linux下文件和目录的常用知识都涉及了。其实理解原理,在linux试验几次很容易内化这些知识。这些都是最基本的知识,这意味必须内化成自己的技能。多练是唯一途径,将试验截图贴在博客来看作用不大。这些知识不像部署lamp,一些参数可以记在文档中,使用时查看以下就可以。
大多数人有windows下使用经验,学习linux要注意和win对比。比如linux文件后缀和win大有不同:linux下文件后缀只是方便区分用途、人们约定俗成的,win下文件后缀决定了默认打开方式。所以linux命名文件,后缀要尽量遵守习惯。在不知道文件的类型时可以用file
命令查看。