在Linux上,我需要知道在从源代码编译和安装应用程序后添加/修改/移动/删除了哪些文件,即。命令行,Linux等同于venerale InCtrl5。
是否有一个实用程序可以执行此操作,或者我可以运行一组命令并向我显示更改?
谢谢。
编辑:以下命令没有问题,但我不需要知道发生更改或“./ ..”更新的行号:
# ls -aR /tmp > b4.txt
# touch /tmp/test.txt
# ls -aR /tmp > after.txt
# diff -u b4.txt after.txt
答案 0 :(得分:4)
如果您只需要知道触摸了哪些文件,那么您可以使用find
:
touch /tmp/MARK
# install application here
find / -newercm /tmp/MARK
这将显示所有文件,其内容或元数据自您触及/tmp/MARK
后已更改(包括新添加的文件)。
答案 1 :(得分: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