-------------------------------------------------参考 《鸟哥的linux私房菜-基础篇》第四版
1 which 寻找执行档
which [-a] command
-a: 将所有由PATH中可以找到的指令均列出,不止第一个被找到的
例:搜寻ifconfig指令的完整文件名
例:搜寻 which指令档名
2文件搜寻
wheris 搜寻
whereis指令只会搜索特定的一些目录。用whereis -l 可以查看这些目录
locate/updatedb 指令
例: 1 找出所有与passwd相关的文档 且只列出3个
locate -l 3 passwd
2 输出locate所使用的数据库文件相关信息
注:locate指令搜索文件不是去磁盘里搜索,而是已建立的数据库(/var/lib/mlocate)中搜索,这样搜索速度会非常快,但是也存在一个问题。这个文件数据库的建立默认是每天执行一次,当你搜索刚才新建的文件时,可能会搜索不到,这时候就需要手动更新一下文件数据库。直接输入updatedb就可更新文件数据库,该指令会根据/etc/updatedb.conf的设定去搜搜系统磁盘内的文件名,并更新/var/lib/mlocate内的数据库文件。
find指令
atime: access time 被访问的时间 显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚 本间接使用。(执行一些可执行文件或脚本)
ctime: change time 显示的是文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会(inode内容发生改变和Block内容发生改变时)
mtime:modify time 显示的是文件内容被修改的最后时间,比如用vi编辑时就会被改变。(也就是Block的内容)
例: 找出/usr/local/linux_study目录下24小时之内被改动的文件
find /usr/local/linux_study -mtine 0
如果0换成3 find /usr/local/linux_study -mtine 0:
则表示找出在3天前(假如今天是1月12号,则表示的是1月9号这一天),一天内被修改的文件
如果3换成+3 find /usr/local/linux_study -mtine 0:
则表示找出在3天前(假如今天是1月12号,则表示的是1月9号之前,不包括9号这天)被修改的文件
如果3换成-3 find /usr/local/linux_study -mtine 0:
则表示找出在3天内(假如今天是1月12号,则表示的是1月9号到1月12号之间)被修改的文件
find /usr/local/linux_study -newer test.txt:
找出比test.txt文件文件日期更新的文件
例:
找出/usr/local/linux_study目录下属于test用户的文件
find /usr/local/linux_study -user test
找出系统中不属于任何用户的文件
find / -nouser
例:找出文件名为test.txt的文件
find /usr/local/linux_study -name test.txt
找出文件名包含test的文件
find /usr/local/linux_study -name “test”
找出大于1M的文件
find / -size +1M +1M 表示大于1M的,-1M表示小于1M的
find指令后的额外指令:
find /usr/bin -perm /7000 -exec ls -l {} ;
1 {} 表示的find指令找到的内容,由find指令找到的内容会被放到{}中
2 -exec 一直到 ; 表示find 指令执行完要额外执行的指令
3 ;在bash环境下是有特殊意义的,因此要用反斜杠来转译