如何跟踪文件创建和修改

时间:2012-10-03 14:48:23

标签: linux bash shell

我们已经整合了一个perl脚本,它基本上查看传递给它的参数,检查是否正在创建或修改文件,然后将其保存在mysql数据库中,以便以后可以轻松访问。这是有趣的部分,如何在终端中键入的所有命令之前运行此perl脚本。我需要制作这个虚拟证明,这样人们就不会忘记运行它。

对不起,我没有正确地提出这个问题。我想要做的是为每个命令添加前缀,使得每个命令都会像“./run.pl ls”那样运行。这样我可以跟踪文件更改,如果命令是mv或者它创建一个out文件,例如。该脚本非常关注这一点,但我不知道如何无缝地运行它给用户。

我正在使用bash终端运行ubuntu服务器。

由于

2 个答案:

答案 0 :(得分:4)

如果我理解正确,你需要在运行每个命令之前执行一个函数,类似于preexec中的precmdzsh

不幸的是bash没有本机支持,但您可以使用DEBUG陷阱来实现。

Here是应用此方法的示例代码。

This page也提供了一些有用的信息。

答案 1 :(得分:1)

您可以修改~/.bashrc文件并在那里启动脚本。请注意,每个用户都(并且应该)仍然拥有修改此文件的权限,可能会删除脚本调用。

/etc/bash.bashrc文件是系统范围的,只能由root进行更改。

当创建新的bash实例(例如新终端)时,将执行这些.bashrc

它与系统shell sh不同,在Ubuntu系统上是dash