Linux2.7find命令
快捷键:
Ctrl+C 终止当前命令 Ctrl+D 退出终端,等于exit Ctrl+Z 暂停当前进程,fg恢复 Ctrl+L 清屏 Ctrl+U 快速删除光标前的字符 Ctrl+A 光标定位到行首 Ctrl+E 光标定位到行尾
find 文件范围 [1] [2] [3] [1] -atime +n/-n 访问或执行时间大于/小于n天的文件 -mtime 文件内容被修改的时间 【 mmin 分钟】 -ctime 写入、更改inode属性(例如更改所有者、权限或者链接)时间 [2] -type f普通文件 b块设备 c字符设备 d目录 l符号链接文件 s管道文件 [3] -name filename 直接查找文件名的文件
#最普通用法 [root@chy002 ~]# find /etc/ -name "sshd" #精确搜索 /etc/sysconfig/sshd /etc/pam.d/sshd [root@chy002 ~]# find /etc/ -name "sshd*" #模糊搜索 /etc/sysconfig/sshd /etc/ssh/sshd_config /etc/pam.d/sshd /etc/systemd/system/multi-user.target.wants/sshd.service
#文件类型 [root@chy002 ~]# find /dev -type s /dev/log
#时间 atime mtime ctime #atime 访问或者执行时间 #mtime 写入、更改inode属性(更改所有者、权限或者链接)【用的多】 #ctime 写入时间 #更改了文件的内容,ctime肯定会变 [root@chy002 ~]# stat /tmp/1.txt #比ls -l更详细 文件:"/tmp/1.txt" 大小:0 块:0 IO 块:4096 普通空文件 设备:803h/2051d Inode:101095254 硬链接:1 权限:(0666/-rw-rw-rw-) Uid:( 1000/ chy002) Gid:( 1000/ chy002) 最近访问:2017-10-26 00:57:51.704950329 +0800 最近更改:2017-10-25 06:08:33.483986403 +0800 最近改动:2017-10-26 05:35:16.210502977 +0800 创建时间:- [root@chy002 ~]# LANG=en [root@chy002 ~]# stat /tmp/1.txt File: '/tmp/1.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 803h/2051d Inode: 101095254 Links: 1 Access: (0666/-rw-rw-rw-) Uid: ( 1000/ chy002) Gid: ( 1000/ chy002) Access: 2017-10-26 00:57:51.704950329 +0800 Modify: 2017-10-25 06:08:33.483986403 +0800 Change: 2017-10-26 05:35:16.210502977 +0800 Birth: - #默认为并且,可以-o改为或者,一天以内更改,或者文件类型,或者txt后缀 [root@chy002 ~]# find /tmp/ -type f -o -mtime -1 -o -name "*.txt" /tmp/ /tmp/1.txt /tmp/2.txt /tmp/3.txt /tmp/chy/1.txt /tmp/chy/p1.txt /tmp/chy2.txt /tmp/123.txt /tmp/321.txt
使用find命令,如果只想找到当前目录下(不要子目录以及子目录的子目录)的文件或目录符合条件的需要加什么选项? -maxdepth 1
上一节说到硬链接,硬链接文件其实是互为硬链接,且没有什么表示,不如软连接有一个指向,如果不在一个文件夹下,互为硬链接的两个文件是很难找到的。但是find可以达到目的。
[root@chy002 tmp]# ln /etc/passwd /tmp/passwd.txt [root@chy002 tmp]# ls -i /etc/passwd 34306158 /etc/passwd [root@chy002 tmp]# find / -inum 34306158 /etc/passwd /tmp/passwd.txt
-size -10k/M +10k/M 大于小于10k/M的文件
[root@chy002 tmp]# find /tmp/ -size -1k /tmp/1.txt /tmp/3.txt /tmp/chy2.txt
-exec执行命令选项 ;其中时间选项还可以从一天精确到 -mmin 分钟
[root@chyuanliu-01 ~]# find /root/ -type f -mmin -240 /root/.bash_history /root/chying.txt [root@chyuanliu-01 ~]# find /root/ -type f -mmin -240 -exec ls -l {} \; -rw-------. 1 root root 4543 Aug 27 21:47 /root/.bash_history -rw-r--r--. 1 root root 0 Aug 27 23:45 /root/chying.txt 批量处理,遍历花括号{},每一个花括号就相当于每个文件 [root@chyuanliu-01 ~]# find /root/ -type f -mmin -240 -exec mv {} {}.bak \; [root@chyuanliu-01 ~]# find /root/ -type f -mmin -240 /root/.bash_history.bak /root/chying.txt.bak