如何檢查哪些文件內容髮生了變化,而不是 Linux 中的 atime、mtime、ctime?
有什麼方法可以找出在 Linux 中修改或添加了哪些文件內容。我知道atime,ctime,mtime。假設我創建了一個腳本“myscript.sh”並且有人更改了它的一些內容,例如添加了幾行程式碼或刪除了。我想知道自文件創建以來更改了哪些內容?
有什麼想法嗎?
您可以通過git以 VCS 方式執行此操作。
首先,安裝 git(它應該是預先安裝的,如果沒有,你的包管理器應該有它)
對於 Debian 系統:
sudo apt-get install git
然後,創建一個目錄來保存你的文件(
mkdir myDir
)進入該目錄,然後執行
git init
. (這將創建一個本地 Git 儲存庫)。將文件添加到目錄中,然後執行
git add -f *
.現在,您可以執行
git commit -m "file before editing"
以按原樣保存文件。您可以執行
git status
以查看文件是否已被編輯。它會顯示如下內容:
modified: myFile.txt
如果要將文件回滾到上次執行時
git commit
,可以執行git reset --hard HEAD^
. 這將強製本地儲存庫返回到最後一次送出。您可以使用 保存對文件的新更改
git commit
,如下所示:
git commit -m "added 4 lines"
如果您想查看送出列表(及其消息),您可以執行
git log
.VCS 就是為此而設計的,這就是我在回答中使用它的原因。
Unix 中通常沒有內置工具(或者更確切地說,像OpenVMS 上那樣內置在最常見的 Unix 文件系統中),因此您不能期望檢索文件的早期版本。
最簡單的解決方案是保留您想要“監控”的文件的個人副本,然後定期執行
diff
這些文件和安裝在系統上的副本。下一步是將文件保存在某種版本控制系統中。在 Unix 上最容易獲得的通常是RCS,它是非常基本的,但它就像它在錫上所說的那樣。
Git更複雜,但如果這僅涉及一個或少數幾個文件(RCS 處理單個文件並且沒有屬於一起的許多文件的“儲存庫”的概念),則可能會太麻煩。