前几天介绍了使用 mlocate 命令在 Linux 查找文件的方法(Linux Ubuntu 查找文件命令 mlocate 安装和使用方法),今天再介绍一下使用 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