Linux的find命令

find  查找命令

  -name   查找某个文件,文件名为name

例如: find /etc/ -name passwd       查找/etc/目录下名为passwd的文件并输出

find /etc -name *.conf              查找/etc/目录下所有以.conf结尾的文件

Linux的find命令_第1张图片
  -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/验证以上命令

Linux的find命令_第2张图片


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

截图操作如下:

Linux的find命令_第3张图片

-type  查找文件类型
find /mnt -type d    查找目录
find /mnt -type f    查找文件

截图操作:

Linux的find命令_第4张图片


find /mnt -cmin 10   查找整10分钟前操作的文件
find /mnt -cmin -10  查找10分钟内操作的文件
find /mnt -cmin +10  查找10分钟前操作的文件

Linux的find命令_第5张图片

-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。

Linux的find命令_第6张图片

-exec command {}  {}表示查找到的文件

例如:find /mnt -perm 444 -exec rm -rf {} \;整体这个命令的意思是,删除/mnt下权限为444的文件

Linux的find命令_第7张图片

find /etc -name *.conf -exec cp -rp {} /mnt \;递归复制/etc下以.conf结尾的文件到/mnt下

Linux的find命令_第8张图片

 

你可能感兴趣的:(Linux的find命令)