2.23 find命令java
[root@MOMOCO-02 ~]# which lsnode
alias ls='ls --color=auto'linux
/usr/bin/ls程序员
【咱们以前说过这个命令能够搜索一个命令是否有别名,也能够找到他的绝对路径在哪里。他是在环境变量PATH里面找的】vim
[root@MOMOCO-02 ~]# echo $PATHbash
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binless
[root@MOMOCO-02 ~]# whereis lsfrontend
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gzssh
【这也是一个搜索的命令,他搜索的不是特别全。他是在一个库里面的找的这个库可能天天在指定的时间更新。只有你更新了才可能找到你想要的一些东西。】ide
[root@MOMOCO-02 ~]# mlocate
-bash: mlocate: 未找到命令
【这也是一个搜索的命令,和whereis比较像】
[root@MOMOCO-02 ~]# yum install -y mlocate
【安装这个命令】
[root@MOMOCO-02 ~]# locate ls
locate: 没法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
【他会提示你你没有/var/lib/mlocate/mlocate.db库你无法搜索,这个库通常会在早上的4点生成】
[root@MOMOCO-02 ~]# updatedb
【手动生成/var/lib/mlocate/mlocate.db库】
[root@MOMOCO-02 ~]# ls
123 2_1.txt 2.txt 3 3.txt 3.txt~ anaconda-ks.cfg
[root@MOMOCO-02 ~]# locate 123
/root/123
/root/123/12
/root/123/gyblinux
/root/123/gyblinux.txt
/root/123/12/1.txt
/root/123/12/3
/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/media/dvb-frontends/cx24123.ko.xz
/usr/lib64/gconv/IBM1123.so
/usr/share/man/man1/perl5123delta.1.gz
/usr/share/perl5/pod/perl5123delta.pod
【这个命令搜索的不是特别精准。他会把你想搜索的字符所有列出来】
小知识:快捷键
crtl+l【清屏】
ctrl+c【取消】
ctrl+d【登出客户端】
ctrl+u【删除光标前面的东西】
ctrl+a【把光标移动到最前面】
ctrl+e【把光标移动到最后面】
find命令格式:find 路径 选项
[root@MOMOCO-02 ~]# find /etc/ -name sshd_config
/etc/ssh/sshd_config
【当咱们不知道一个配置文件的路径时,咱们能够用名字-name 名字去搜索。】
[root@MOMOCO-02 ~]# find /etc/ -name sshd*
/etc/ssh/sshd_config
/etc/systemd/system/multi-user.target.wants/sshd.service
/etc/sysconfig/sshd
/etc/pam.d/sshd
【若是你不彻底知名字是啥?你能够用*通配符模糊搜索。】
[root@MOMOCO-02 ~]# find /etc/ -type f -name sshd*
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/etc/pam.d/sshd
[root@MOMOCO-02 ~]# find /etc/ -type d -name sshd*
【-type表示你想要搜索的东西是什么类型的。后面加d表明目录,加f表明文件,加l表明软链接文件,加b表明块设备文件,加c表明设备文件】
[root@MOMOCO-02 ~]# find /etc/ -type l
/etc/pki/ca-trust/source/ca-bundle.legacy.crt
/etc/pki/java/cacerts
/etc/pki/tls/cert.pem
........
/etc/rc2.d
/etc/rc3.d
/etc/rc4.d
/etc/rc5.d
/etc/rc6.d
/etc/pam.d/smtp
/etc/pam.d/system-auth
/etc/pam.d/postlogin
/etc/pam.d/password-auth
/etc/pam.d/fingerprint-auth
/etc/pam.d/smartcard-auth
/etc/ssl/certs
/etc/grub2.cfg
[root@MOMOCO-02 ~]# find /dev/ -type c
/dev/vsock
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
.......
/dev/null
/dev/mem
/dev/vga_arbiter
[root@MOMOCO-02 ~]# find /dev/ -type b
/dev/sr0
/dev/sda3
/dev/sda2
/dev/sda1
/dev/sda
-mtime、-ctime、-atime
[root@MOMOCO-02 ~]# stat 2.txt
File: '2.txt'
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051dInode: 33617208 Links: 2
Access: (0700/-rwx------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-12-21 21:30:22.825933901 +0800
Modify: 2017-12-21 21:29:51.200993908 +0800
Change: 2017-12-21 21:34:38.596530480 +0800
Birth: -
【详细的显示一个文件或目录的信息。红色的部分就表明-mtime、-ctime、-atime他们表明什么那?】
[root@MOMOCO-02 ~]# chmod 700 2.txt
[root@MOMOCO-02 ~]# stat 2.txt
File: '2.txt'
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051dInode: 33617208 Links: 2
Access: (0700/-rwx------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-12-21 21:30:22.825933901 +0800
Modify: 2017-12-21 21:29:51.200993908 +0800
Change: 2017-12-23 10:52:19.760809458 +0800
Birth: -
【当咱们改了文件的权限的时候Change的时间就发生了变化。-ctime记录的是一个文件的大小,所属主所属组,时间,权限等相关的信息】
[root@MOMOCO-02 ~]# echo "qqqqqqq" > 2.txt
【echo什么就会显示什么,>表明把echo显示的东西重定向到2.txt中】
[root@MOMOCO-02 ~]# echo "asfcacasc"
asfcacasc
[root@MOMOCO-02 ~]# echo "asfcacac"
asfcacac
[root@MOMOCO-02 ~]# stat 2.txt
File: '2.txt'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051dInode: 33617208 Links: 2
Access: (0700/-rwx------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-12-21 21:30:22.825933901 +0800
Modify: 2017-12-23 10:55:37.736303129 +0800
Change: 2017-12-23 10:55:37.736303129 +0800
Birth: -
【当咱们把文件内容改了以后你会发现Modify和Change的时间都发生了变化。-mtime记录的是文件的内容,当你的文件内容发生变化了他的大小一会变化,因此-ctime一会跟着变化。】
[root@MOMOCO-02 ~]# cat 2.txt
qqqqqqq
[root@MOMOCO-02 ~]# stat 2.txt
File: '2.txt'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051dInode: 33617208 Links: 2
Access: (0700/-rwx------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-12-23 11:08:22.948276279 +0800
Modify: 2017-12-23 10:55:37.736303129 +0800
Change: 2017-12-23 10:55:37.736303129 +0800
Birth: -
[root@MOMOCO-02 ~]# date
Sat Dec 23 11:08:58 CST 2017
【当咱们访问了这个文件的时候他的Access会更新】
[root@MOMOCO-02 ~]# find / -type f -mtime -1
【查询一天之内更改过的文件,-1表明一天之内+1表明一天之前。记住没有等于一天的。】
[root@MOMOCO-02 ~]# stat /var/cache/man/es/index.db
文件:"/var/cache/man/es/index.db"
大小:16384 块:32 IO 块:4096 普通文件
设备:803h/2051d Inode:50716285 硬连接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:mandb_cache_t:s0
最近访问:2017-12-23 13:03:13.959642624 +0800
最近更改:2017-12-23 13:03:13.957642539 +0800
最近改动:2017-12-23 13:03:13.958642582 +0800
建立时间:-
[root@MOMOCO-02 ~]# date
2017年 12月 23日 星期六 13:08:47 CST
[root@MOMOCO-02 ~]# stat /var/log/dmesg
文件:"/var/log/dmesg"
大小:121810 块:240 IO 块:4096 普通文件
设备:803h/2051d Inode:16777285 硬连接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:var_log_t:s0
最近访问:2017-12-23 10:01:42.830000219 +0800
最近更改:2017-12-23 10:01:42.887000222 +0800
最近改动:2017-12-23 10:01:42.887000222 +0800
建立时间:-
看个小范围的:
[root@MOMOCO-02 ~]# find /etc/ -type f -mtime -1
/etc/resolv.conf
/etc/group
/etc/gshadow
/etc/tuned/active_profile
[root@MOMOCO-02 ~]# stat /etc/gshadow
文件:"/etc/gshadow"
大小:384 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:17239462 硬连接:1
权限:(0000/----------) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:shadow_t:s0
最近访问:2017-12-23 10:17:10.281516726 +0800
最近更改:2017-12-23 10:17:10.283516785 +0800
最近改动:2017-12-23 10:17:10.284516815 +0800
建立时间:-
咱们也能够加上-name选项:
[root@MOMOCO-02 ~]# find /etc/ -type f -mtime -1
/etc/resolv.conf
/etc/group
/etc/gshadow
/etc/tuned/active_profile
[root@MOMOCO-02 ~]# find /etc/ -type f -mtime -1 -name *.conf
/etc/resolv.conf
上面咱们用到的这么多选项他们之间都是而且的意思,那咱们能他们是或者的意思吗?固然能够:
[root@MOMOCO-02 ~]# find /etc/ -type f -o -mtime -1 -o -name *.conf
【咱们在选项中加上-o他们就是或者的意思了,几乎没有人会这么用的】
还记得以前咱们想找有几个相同的inode号的文件吗?咱们如今就能够用find查找
[root@MOMOCO-02 ~]# ln /root/2.txt /tmp/2.txt.doc
【咱们硬连接一个文件,由于硬连接的文件他们的inode号是相同的】
[root@MOMOCO-02 ~]# ls -l 2.txt
-rwx------. 3 root root 8 12月 23 10:55 2.txt
[root@MOMOCO-02 ~]# ls -i 2.txt
33617208 2.txt
[root@MOMOCO-02 ~]# find / -inum 33617208
/root/2_1.txt
/root/2.txt
/tmp/2.txt.doc
【能够看到咱们找到这三个相同inode号的文件路径,-inum 选项就是查找相同inode号的】
刚刚咱们介绍-mtime一天之内的了,那咱们还用没有补这个时间更小的那?
[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -120
/etc/resolv.conf
【-mmin这个表明的是分钟,-120表明的是120分钟之内的。】
[root@MOMOCO-02 ~]# ls -l /etc/resolv.conf
-rw-r--r--. 1 root root 54 12月 23 13:01 /etc/resolv.conf
[root@MOMOCO-02 ~]# date
2017年 12月 23日 星期六 13:44:45 CST
【能够看到这个文件是在120分钟之内。每次使用ls -l去查看咱们感受太麻烦了,那有没有比较简单的方法让他直接显示出来。咱们看下面】
[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -120 -exec ls -l {} \;
-rw-r--r--. 1 root root 54 12月 23 13:01 /etc/resolv.conf
【-exec 后面加上咱们的要求,{}表明每个选项。{}后面一个空格 ,\;这一个必需要加上】
[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -300
/etc/resolv.conf
/etc/group
/etc/gshadow
/etc/tuned/active_profile
[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -300 -exec mv {} {}.bak \;
[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -300
/etc/group.bak
/etc/gshadow.bak
/etc/resolv.conf.bak.bak
/etc/tuned/active_profile.bak
【咱们能够批量的更名字,这个选项还能够不少功能】
在root目录下找到小于10k的文件或者目录
[root@MOMOCO-02 ~]# find /root/ -size -10k
/root/
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
/root/.cshrc
/root/.tcshrc
/root/anaconda-ks.cfg
/root/.ssh
/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
/root/.ssh/known_hosts
/root/.ssh/authorized_keys
/root/.viminfo
/root/.lesshst
/root/3.txt~
/root/3.txt
/root/3
/root/123
/root/123/12
/root/123/12/1.txt
/root/123/12/3
/root/123/gyblinux.txt
/root/123/gyblinux
/root/2_1.txt
/root/2.txt
/root/1234
/root/1234/12
/root/1234/12/1.txt
/root/1234/12/3
/root/1234/gyblinux.txt
/root/1234/gyblinux
/root/23
[root@MOMOCO-02 ~]# find /root/ -size -10k -exec ls -ld {} \;
dr-xr-x---. 6 root 0 276 12月 23 14:11 /root/
-rw-r--r--. 1 root 0 18 12月 29 2013 /root/.bash_logout
-rw-r--r--. 1 root 0 176 12月 29 2013 /root/.bash_profile
-rw-r--r--. 1 root 0 176 12月 29 2013 /root/.bashrc
-rw-r--r--. 1 root 0 100 12月 29 2013 /root/.cshrc
-rw-r--r--. 1 root 0 129 12月 29 2013 /root/.tcshrc
-rw-------. 1 root 0 3470 12月 19 21:40 /root/anaconda-ks.cfg
drwx------. 2 root 0 80 12月 14 17:41 /root/.ssh
-rw-------. 1 root 0 1675 12月 14 17:25 /root/.ssh/id_rsa
-rw-r--r--. 1 root 0 396 12月 14 17:25 /root/.ssh/id_rsa.pub
-rw-r--r--. 1 root 0 175 12月 14 17:37 /root/.ssh/known_hosts
-rw-r--r--. 1 root 0 1224 12月 14 17:41 /root/.ssh/authorized_keys
-rw-------. 1 root 0 608 12月 16 08:42 /root/.viminfo
-rw-------. 1 root 0 41 12月 20 12:26 /root/.lesshst
-rw-r--r--. 1 root 0 0 12月 20 12:33 /root/3.txt~
-rw-rw-r--. 1 root 0 65 12月 20 13:18 /root/3.txt
drwxr-xr-x. 2 root 0 6 12月 21 16:56 /root/3
drwxr-xr-x. 3 root 0 52 12月 21 20:23 /root/123
drwxr-xr-x. 3 root 0 28 12月 21 19:49 /root/123/12
drwxr-xr-x. 2 root 0 6 12月 21 19:39 /root/123/12/1.txt
lrwxrwxrwx. 1 root 0 7 12月 21 19:49 /root/123/12/3 -> /root/3
lrwxrwxrwx. 1 root 0 8 12月 21 20:18 /root/123/gyblinux.txt -> gyblinux
[root@MOMOCO-02 ~]# find /root/ -size +10M -exec ls -ld {} \;
[root@MOMOCO-02 ~]# find /root/ -size +10m -exec ls -ld {} \;
find: 无效的 -size 类型“m”
【咱们也能够用单位兆可是M必定要大写,不能够小写。没有字节单位b】
2.26文件后缀名
小知识:在咱们linux系统中文件、目录后者命令都是区分大小写的
[root@MOMOCO-02 ~]# ls
123 1234 2_1.txt 23 2.txt 3 3.txt 3.txt~ anaconda-ks.cfg
[root@MOMOCO-02 ~]# LS
-bash: LS: 未找到命令
在linux下咱们的文件是没有类型的。
好比咱们系统里面有###.gz的文件在系统里面认为是压缩文件,可是不能所有肯定由于咱们能够编辑一个文件保存为1.gz这个那却是压缩文件吗?
咱们linux文件的后缀名就是为了方便咱们程序员分辨一个文件是什么类型那些是相同的文件