1.使用find命令搜索文件
Find命令:在本地文件系统中实时搜索,调用命令的用户必须具有要查看其内容的目录的读取和执行权限。搜索整个系统,则用起始目录/。Find的第一个参数是要搜索的目录,若省略了搜索目录,则从当前目录开始搜索,并在任何子目录中查找匹配项。
2.Find命令的一般形式:find pathname -options
pathname表示所查找的目录路径,/表示系统根目录
Options常用的有下面这些:
a. 按照文件名查找(-name)
例:[[email protected] ~]# find /tmp/file2 -name file2
/tmp/file2()
[[email protected] ~]# find / -name sshd_config
/etc/ssh/sshd_config(从当前root目录开始搜索)
[[email protected] ~]# find / -name "*.txt"(使用通配符搜索文件名)
/etc/pki/nssdb/pkcs11.txt
/etc/brltty/brl-lt-all.txt
/etc/brltty/brl-mb-all.txt
/etc/brltty/brl-md-all.txt
/etc/brltty/brl-mn-all.txt
/etc/brltty/brl-ba-all.txt
【注:若搜索的文件名不区分大小写,则用-iname】
b. 按照所有者搜索(-user -group -uid -gid)
例:[[email protected] Desktop]$ find -uid 1000
.
./lili
[[email protected] ~]# find / -user root -group mail
/var/spool/mail
/var/spool/mail/root
c. 按照特定权限集搜索(-perm)【特定权限可用代表各权限的八进制数4、2、1】
[[email protected] ~]# find /home -perm 664(匹配用户具有读、写权限,组成员具有读、写权限,其他具有读权限)
/home/user/.config/gtk-3.0/bookmarks
/home/user/.config/gnome-initial-setup-done
/home/user/.config/yelp/yelp.cfg
/home/user/.cache/abrt/applet_dirlist
/home/user/.cache/tracker/miner-applications-locale.txt
/home/user/.cache/tracker/last-crawl.txt
/home/user/.cache/tracker/first-index.txt
/home/user/Desktop/lili
【注:数字权限前/表示至少匹配文件的用户、组、其他人中的至少一个,相当于或关系;而数字权限前-表示所有三个实例都必须存在,相当于与关系;与/或-一起使用时,0值类似于通配符】
[[email protected] Desktop]$ find -perm -004
.
./lili
d. 按照指定大小搜索(-size 单位有:k代表千字节 M代表兆字节G代表千兆字节)
Find -size 大小【+数字,表示大于的文件;-数字,代表小于的文件】
[[email protected] ~]# find -size -1k
./.local/share/gnome-settings-daemon/input-sources-converted
./.local/share/folks/relationships.ini
./.local/share/.converted-launchers
./.local/share/tracker/data/.meta.isrunning
./.local/share/keyrings/user.keystore.B52TQX
e. 按照文件更改时间搜索【-mmin以分钟计 -mtime以天数计】
Find -mmin 时间【如:120 表示正好在120分钟以前修改的文件;+120表示在120分钟前修改的文件;-120不到120分钟以前修改的文件】
[[email protected] ~]# find /tmp -mmin -240
/tmp
/tmp/.X11-unix
/tmp/.X11-unix/X0
/tmp/.ICE-unix
/tmp/.ICE-unix/3016
/tmp/.esd-1000
/tmp/.esd-1000/socket
/tmp/systemd-private-2Xv5n9
/tmp/systemd-private-2Xv5n9/tmp
/tmp/.X0-lock
/tmp/systemd-private-WlIQkZ
/tmp/systemd-private-WlIQkZ/tmp
/tmp/ssh-wu8iRCYHWtvO
/tmp/ssh-wu8iRCYHWtvO/agent.3016
/tmp/systemd-private-pKQdaL
/tmp/systemd-private-pKQdaL/tmp
/tmp/file2
.....
f. 按照给定文件类型搜索(-type)
Find / -type f /匹配的文件类型是普通文件
Find / -type d /匹配的文件类型是目录
Find / -type l /匹配的文件类型是软连接【-links+n表示具有特定硬链接的文件,+n表示硬链接数大于n的文件,-n表示硬链接数小于n的文件】
Find / -type b /匹配的文件类型是块设备
[[email protected] ~]# find / -type b
/dev/sda2
/dev/sda1
/dev/sda
3.使用exec来执行命令【基本命令:-exec 跟所执行的命令 {} \;其中执行的命令可以是ls-l列出,rm-rf删除,cp-a 复制等等,\;只是语法表示】
[[email protected] ~]# find / -type f -exec ls -l {} \;(表示把匹配到的当前目录下的所有普通文件列出来)
-r--------. 1 user user 67108904 Nov 22 19:23 /dev/shm/pulse-shm-74798595
-r--------. 1 user user 67108904 Nov 22 19:22 /dev/shm/pulse-shm-2901993750
-r--------. 1 user user 67108904 Nov 22 19:22 /dev/shm/pulse-shm-2662806495
-r--------. 1 user user 67108904 Nov 22 19:39 /dev/shm/pulse-shm-4161240769
-r--------. 1 user user 67108904 Nov 22 19:39 /dev/shm/pulse-shm-3144017989
-r--------. 1 gdm gdm 67108904 Nov 22 19:21 /dev/shm/pulse-shm-1648396760