3

Linux では、ソース コードからアプリケーションをコンパイルおよびインストールした後に、どのファイルが追加/変更/移動/削除されたかを知る必要があります。コマンドライン、Linux では従来の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 に答える