Linux

如何檢查哪些文件內容髮生了變化,而不是 Linux 中的 atime、mtime、ctime?

  • July 7, 2016

有什麼方法可以找出在 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 處理單個文件並且沒有屬於一起的許多文件的“儲存庫”的概念),則可能會太麻煩。

引用自:https://unix.stackexchange.com/questions/294312