Linux 找档案方法


Linux 下找档案很多时会用上 find 指令, find 的搜寻功能十强大, 可以用多个不同的过滤条件找档案, 除了找档案外, find 指令也可以找目录, 而且 find 是 Linux 下内建的工具, 不用额外安装.

找档案最常遇到的情况是根据档案名称搜寻, 例如要在 /var/www/html 找 filename.txt 档案, 用以下指令:

/linux/find-command

  • # find /var/www/html/ -name filename.txt

另一个常见的搜寻例子是, 找要出指定副档名的档案, 例如要找出所有 “.log” 结尾的档案, 可以这样:

/linux/find-command

  • # find /var/www/html/ -name “*.log”

上面例子是根据档案名称搜寻档案, find 指令其中一个十分有用的参数是 -type, 加入了 -type 参数后, 可以指令要找的档案类型, 一般常见的档案类型会以下字符指定:

f -> 档案
d -> 目录
l -> 连结档
c -> character devices
b -> block devices
Find by type

例如我想找出所有 /var/www/html/ 的连结档, 用以下指令:

/linux/find-command

  • # find /var/www/html/ -type l

find 另一个常用的功能是 -size 参数, 这样便可以找出指定大小的档案, 例如要找出所有大过 1000MB 的档案, 便可以用以下语法:

/linux/find-command

  • # 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 天内被存取或修改过的档案:

/linux/find-command

  • # find /var/www/html/ -type f -atime -7

找出 7 天内被修改的档案:

/linux/find-command

  • # find /var/www/html/ -type f -mtime -7

上面的 -7 是 7 天内被修改过的意思, 如果想改为找 7 天内没有被修改过, 将 “-7” 改为 “+7”

find 指令的功能不止上面这些, 还是很多不同的搜寻技巧, 本文只作基本介绍, 其他留待日后再写。

Leave a Reply