Linux Ubuntu/Debian 使用 find 命令查找文件教程

已关闭留言

昨天介绍了使用 mlocate 命令在 Linux 查找文件的方法(Linux Ubuntu 查找文件命令 mlocate 安装和使用方法),今天再介绍一下使用 find 命令查找文件的方法。find 命令一般都是系统自带的,所以不需要我们进行安装。查找文件确实是比较常见的操作,所以多了解一个命令也没有什么不好的。

文章目录
隐藏
一、find 命令基本使用方法
二、find 命令进阶用法

一、find 命令基本使用方法

find 命令格式如下:

find PATH EXPRESSIONS... ACTIONS...

比如,我想查找 /etc/passwd 这个文件:

find /etc -name passwd -print

简单解释:

  • 去 /etc 这个目录和它的所有子目录下面寻找
  • 匹配所有文件名为 passwd 的文件
  • 打印所有找到的文件

查找结果如下:

# find /etc -name passwd -print
/etc/pam.d/passwd
/etc/cron.daily/passwd
/etc/passwd
#

其中 -print 命令是可选的,可以不用一起打,同样会输出结果。

二、find 命令进阶用法

如果我不知道目录,那么可以直接在根目录下面搜索:

# find / -name passwd -print
/etc/pam.d/passwd
/etc/cron.daily/passwd
/etc/passwd
/usr/bin/passwd
/usr/share/doc/passwd
/usr/share/lintian/overrides/passwd
/usr/share/bash-completion/completions/passwd
#

此外,-iname 可以用来代替 -name,表示大小写敏感查找。

此外也可以根据其他参数进行查找,比如根据大小:

# dd if=/dev/zero of=/root/bigfile bs=1048576 count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 0.490124 s, 1.1 GB/s
# find / -size +100M -print
/proc/kcore
find: ‘/proc/2381/task/2381/fd/6’: No such file or directory
find: ‘/proc/2381/task/2381/fdinfo/6’: No such file or directory
find: ‘/proc/2381/fd/5’: No such file or directory
find: ‘/proc/2381/fdinfo/5’: No such file or directory
/root/bigfile

或者根据时间:

# mkdir /backup
# touch -t 201008201111 /backup/some_old_backup.tar.gz
# touch /backup/current_backup.tar.gz
# ll /backup
total 8
drwxr-xr-x 2 root root 4096 May 24 18:42 .
drwxr-xr-x 19 root root 4096 May 24 18:40 ..
-rw-r--r-- 1 root root 0 May 24 18:42 current_backup.tar.gz
-rw-r--r-- 1 root root 0 Aug 20 2010 some_old_backup.tar.gz
# find /backup -mtime +30 -print
/backup/some_old_backup.tar.gz

参考文献:https://lowendbox.com/blog/how-to-find-files-in-linux/