find 查找命令
-name 查找某个文件,文件名为name
例如: find /etc/ -name passwd 查找/etc/目录下名为passwd的文件并输出
find /etc -name *.conf 查找/etc/目录下所有以.conf结尾的文件
-user name 查找某个文件所有人为user的文件
-group name 查找某个文件所有组为group的文件
-user name1 -group name2,查找文件所有人为name1且所有组为name2的文件
-not -user name 查找文件所有人不为name的文件 (-not表示反的意思)
-not -user student -o -group root 查找文件所有人不为student或者文件所有组为root的文件 -o表示或者
测试:首先,我在/mnt/目录下创建几个文件,赋予他们不同的组和用户名,配合监控命令:watch -n 1 ls -lR /mnt/验证以上命令
find /etc -maxdepth 1 -name passwd 查找此目录最多下一级目录的文件passwd
find /etc -maxdepth 2 -mindepth 2 -name *.conf查找/etc下最多两级且最少两极的目录的以.conf结尾的文件
测试:
find /mnt -size 20K 查找20K的文件
find /mnt -size -20K 查找小于20K的文件
find /mnt -size +20K 查找大于20K的文件
测试:在/mnt/下给file1 file2 file3写入不同大小,然后测试以上命令
dd if=/dev/zero of=/mnt/file1 bs=1 count=10240
dd if=/dev/zero of=/mnt/file2 bs=1 count=20480
dd if=/dev/zero of=/mnt/file3 bs=1 count=40960
截图操作如下:
-type 查找文件类型
find /mnt -type d 查找目录
find /mnt -type f 查找文件
截图操作:
find /mnt -cmin 10 查找整10分钟前操作的文件
find /mnt -cmin -10 查找10分钟内操作的文件
find /mnt -cmin +10 查找10分钟前操作的文件
-perm
测试:touch /mnt/file{1..5}
chmod 000 *
chmod 404 file1
chmod 444 file2
chmod 644 file3
chmod 640 file4
find /mnt/ -perm 444 查找/mnt下权限为444的文件,所以查找到的文件是file2
find /mnt/ -perm -444 查找/mnt下权限包括444的文件,因为444是r--r--r--,644是rw-r--r--,所以644包含444,所以查找到的文件是file2和file3.
find /mnt/ -perm /444 查找/mnt下 o权限包括r或g权限包括r或o权限包括r的文件,即只要包含r即可,所以查找到的文件是file1 file2 file3 file4。
-exec command {} {}表示查找到的文件
例如:find /mnt -perm 444 -exec rm -rf {} \;整体这个命令的意思是,删除/mnt下权限为444的文件
find /etc -name *.conf -exec cp -rp {} /mnt \;递归复制/etc下以.conf结尾的文件到/mnt下