3

在 Linux 上,我需要知道从源代码编译和安装应用程序后添加/修改/移动/删除了哪些文件,即。命令行,Linux 等效于 venerale InCtrl5

是否有执行此操作的实用程序,或者我可以运行一组命令并向我显示更改?

谢谢你。


编辑:以下命令还可以,但我不需要知道发生更改的行号或更新了“./..”的行号:

# ls -aR /tmp > b4.txt
# touch /tmp/test.txt
# ls -aR /tmp > after.txt
# diff -u b4.txt after.txt
4

2 回答 2

6

如果您只需要知道哪些文件被触摸,那么您可以使用find

touch /tmp/MARK
# install application here
find / -newercm /tmp/MARK

这将显示自您触摸后其内容或元数据已更改的所有/tmp/MARK文件(包括新添加的文件)。

于 2010-08-06T02:44:49.790 回答
1

我个人会使用 Mercurial(版本控制)之类的东西来做到这一点。

主要原因是它不仅有效而且干净,因为它只会将隐藏目录添加到您要检查这些更改的树的顶部。

假设您需要知道/etc/. 因此,在安装之前(您需要安装 mercurial),您将目录添加到 mercurial:

cd /etc
hg init
hg add
hg ci -m "adding all files in /etc/ to track them down"

以上将有效地“添加”所有文件以跟踪它们。要验证没有任何变化:

hg st

应该不返回任何文件。

如果您(或安装)修改了文件,您应该会看到如下内容:

hg st
M foo.sh

文件前的“M”表示给定文件已被修改。

对于新文件,您会?在文件之前看到一个,例如:

? bar.sh

完成后不再需要 Mercurial,只需删除隐藏目录即可:

cd /etc
rm -rf .hg
于 2010-08-05T13:14:22.457 回答