在 Linux 中 find命令示例

1. 查找与他们的权限相关的所有文件

使用八进制方法
# find/-perm 755 -type f
使用符号方法
# find/-perm u=rwx,g=rx,o=rx -type f
查找所有具有可执行权限的文件
# find/-executable -type f
查找所有具有可写权限的文件
# find/-writable -type f
查找所有具有可读权限的文件
# find/-readable -type f

2. 根据文件的特殊权限定位文件

使用SGID查找 /usr/bin、/bin/、/usr/sbin/、/sbin/中的所有的可执行文件,

# find /usr/bin//bin//usr/sbin//sbin/-perm +2000 -execuatble
 /usr/bin/ssh-agent
 /usr/bin/locate
 /usr/bin/wall
 /usr/bin/write

使用SUID查找/usr/bin、/bin/、/usr/sbin/、/sbin/中的所有可执行文件

# find /usr/bin//bin//usr/sbin//sbin/-perm +4000 -execuatble
 /usr/bin/ksu
 /usr/bin/gpasswd
 /usr/bin/chsh
/usr/bin/chage
 /usr/bin/sudo

3. 根据大小定位文件

查找所有大小超过30MB的文件
# find/-size +30M -type f
查找所有大小超过1GB的文件
# find/-size +1G -type f
查找所有大小超过6KB的文件
# find/-size +6k -type f

注意:如果要查找大小小于的文件/目录,请在上述示例中使用“-”符号而不是“+”符号

4. 查找与其所有者相关的文件

查找用户所有者为jack的所有文件
# find/-user jack -type f
查找组所有者为jack的所有文件
# find/-group jack -type f

注意:您还可以分别使用-uid和-gid参数,而不是-user和-group

5. 使用另外参数将 o/p 保存到文件

此命令将查找用户所有者为 jack 的所有文件/目录并将 o/p 保存到 file.txt(o/p 将类似于 ls -l)

# find/-user jack  -fls file.txt
# cat file.txt
   210    4 drwx------   9 jack   jack       4096 Apr  5 20:26 /home/jack
   868    4 -rw-r--r--   1 jack   jack        176 May 18  2013 /home/jack/.bash_profile
  7053    4 -rw-r--r--   1 jack   jack        124 May 18  2013 /home/jack/.bashrc
  7078    4 drwxrwxr-x   2 jack   jack       4096 Apr  5 20:26 /home/jack/mywork
  7083    4 -rw-------   1 jack   jack         99 Apr  5 20:27 /home/jack/.bash_history
  7080    4 drwxrwxr-x   2 jack   jack       4096 Apr  5 20:26 /home/jack/work
  7073    4 drwxr-xr-x   2 jack   jack       4096 Nov 12  2010 /home/jack/.gnome2
  7074    4 drwxr-xr-x   4 jack   jack       4096 Mar 14 02:38 /home/jack/.mozilla

注意:如果文件不存在,它将被创建,如果它已经存在,那么它将被覆盖

此命令仅将o/p保存到file.txt

# find/-user jack  -fprint file.txt
 # cat file.txt
 /home/jack
 /home/jack/.bash_profile
 /home/jack/.bashrc
 /home/jack/mywork
 /home/jack/.bash_history
 /home/jack/work
 /home/jack/.gnome2
 /home/jack/.mozilla

6. 与 find 命令一起添加一个另外的参数

此命令将向我们显示所有大小超过 50MB 的文件的详细列表

# find/-size +50M  -ls
270138 65588 -rw-r--r--   1 root     root     67159234 Nov 23 00:20 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre/lib/rt.jar
134253 96796 -rw-r--r--   1 root     root     99158576 Mar 14 02:39 /usr/lib/locale/locale-archive
  7291    0 -rw-------   1 root     root     134217728 Apr  5 16:49 /sys/devices/pci0000:00/0000:00:0f.0/resource1
  7292    0 -rw-------   1 root     root     134217728 Apr  5 20:17 /sys/devices/pci0000:00/0000:00:0f.0/resource1_wc

7. 不分大小写查找文件

此命令将查找/home中名为“test”的所有文件/目录,不考虑大小写

# find /home/-iname test
 /home/jack/test
 /home/jack/Test

8. 根据名称查找文件/目录

查找名为“test”的所有文件/目录

# find /home/-name test
 /home/jack/test

9. 使用通配符查找文件

此命令将使用.txt扩展名搜索所有文件
# find/-name *.txt -type f
此命令将搜索文件[0-9]中扩展名为.txt的所有文件
# find/-name file?.txt -type f

10. 根据修改/访问时间查找文件

查找5分钟前访问的所有目录
# find/-amin -5 -type d
查找从当前时间向后60分钟访问的所有目录
# find/-amin +60 -type d
查找5分钟前访问的所有文件/目录
# find/-amin 5 -type d
查找5天前访问的所有文件/目录
# find/-atime -5 -type d

注意:只需将“-atime”替换为“-mtime”,即可根据修改时间运行上述所有命令

复杂的例子

在/home/jack中找到所有名为test.tx的文件并将其删除

# find /home/jack/-name test.txt -type f | xargs rm -f

或者

# find /home/jack/-name test.txt -type f -exec rm -f {} ;
日期:2020-06-02 22:17:07 来源:oir作者:oir