电脑技术学习

Unix系统下Find命令的三个高级应用

dn001

  Find命令是Unix操作系统中一个很强大的工具。这个命令除了可以用来定位文件外,还有其他许多很实用的用途。如可以用来备份文件、交互式删除文件、列举文件清单等等。只要灵活应用这些功能的话,那么对于系统工程师的日常工作就能够起到事半功倍的效果。

  一、利用Find命令对文件进行备份。

  如在Unix操作系统中有一个用户为oracle。系统会在Home目录下自动为这个用户创建一个子目录Oracle。现在用户希望能够对自己目录下的文件进行自动备份,以防止文件的以外丢失。如下图所示,现在系统工程师准备把用户目录下面的文件备份到backup目录下面,并把文件名字重命名为backup。这个功能可以实现呢?答案当然是肯定的。可以利用find命令结合cp命令来实现这个功能。

   1、文件的最后修改时间。

  在Unix系统的文件属性中,有非常重要的三个时间截,分别为文件最后修改时间、文件最后访问时间、inode节点最后修改时间。一旦用户对某个文件执行了更改操作,则文件inode节点里的最后修改时间就会被更新了。需要注意的是,在Unix操作系统中目录也被当作文件的一种,为此对目录的修改,如创建一个目录或者更改目录的名字也会被当作文件的修改来对待。另外文件修改后,只会更改文件的修改时间,而不会影响到目录的最后修改时间。所以如果一个目录下有一个文件更改了,则在备份的时候只需要备份这个更改的文件即可,而不需要备份这个目录下其他没有更改的文件。

  出于备份效率的考虑,在备份的时候只备份当天修改过的文件。为此在备份时首先要做的就是找到这些最近更改过的文件。这个解决的思路就是从这个文件的最后修改时间入手。在find命令中有一个参数为mtime,它表示修改时间少于x天。如果我们把这个参数设置为1,那么find命令就可以找出在最近一天内修改过的文件。为此只需要对这些找到的文件进行备份即可。

标签: