【问题标题】:Checking changes made before/after installing application?检查安装应用程序之前/之后所做的更改?
【发布时间】:2010-08-05 13:05:36
【问题描述】:

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

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

谢谢。


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

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

【问题讨论】:

  • superuser.com 的另一种情况
  • 但是,1) 开发人员执行此类任务,2) SO 的受众比 SU 多得多:-/

标签: linux installation filesystemwatcher


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,但我需要知道安装应用程序所做的所有更改,而不仅仅是知道预先存在的文件的内容是否被修改。
【解决方案2】:

我个人会使用 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

【讨论】:

  • 谢谢,但我正在寻找使用标准命令的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 2023-03-29
相关资源
最近更新 更多