Linux 下找档案很多时会用上 find 指令, find 的搜寻功能十强大, 可以用多个不同的过滤条件找档案, 除了找档案外, find 指令也可以找目录, 而且 find 是 Linux 下内建的工具, 不用额外安装.
找档案最常遇到的情况是根据档案名称搜寻, 例如要在 /var/www/html 找 filename.txt 档案, 用以下指令:
- # find /var/www/html/ -name filename.txt
另一个常见的搜寻例子是, 找要出指定副档名的档案, 例如要找出所有 “.log” 结尾的档案, 可以这样:
- # find /var/www/html/ -name “*.log”
上面例子是根据档案名称搜寻档案, find 指令其中一个十分有用的参数是 -type, 加入了 -type 参数后, 可以指令要找的档案类型, 一般常见的档案类型会以下字符指定:
f -> 档案
d -> 目录
l -> 连结档
c -> character devices
b -> block devices
Find by type
例如我想找出所有 /var/www/html/ 的连结档, 用以下指令:
- # find /var/www/html/ -type l
find 另一个常用的功能是 -size 参数, 这样便可以找出指定大小的档案, 例如要找出所有大过 1000MB 的档案, 便可以用以下语法:
- # find /var/www/html/ -size +1000MB
以上的 +1000MB 是指大过 1000MB 的意思, 除了 MB 外, 也可以用以下单位定义:
c -> bytes
k -> Kilobytes
M -> Megabytes
G -> Gigabytes
b -> 512-byte blocks
以档案存取或修改作为过滤条件, 可以用 -atime, -mtime 及 ctime 搜寻, 例如找出 7 天内被存取或修改过的档案:
- # find /var/www/html/ -type f -atime -7
找出 7 天内被修改的档案:
- # find /var/www/html/ -type f -mtime -7
上面的 -7 是 7 天内被修改过的意思, 如果想改为找 7 天内没有被修改过, 将 “-7” 改为 “+7”
find 指令的功能不止上面这些, 还是很多不同的搜寻技巧, 本文只作基本介绍, 其他留待日后再写。