如何使用 Debugfs 查找 Linux 文件創建時間

在 Linux 系統中,一切都被視為一個文件,關於文件的關鍵元數據(例如創建和修改日期)存儲在 inode 中。 我們已經研究瞭如何使用 stat、httpie 和 date 命令在 Linux 系統中檢查文件的最後修改日期。

在本教程中,我們將向您展示如何使用 debugfs 命令查找文件創建時間。

使用 debugfs 查找文件創建

要獲取創建時間,首先需要使用 stat 命令查找目標文件的 inode 編號。 這 統計命令 是一個命令行工具,用於打印有關文件元數據的詳細信息,例如:

  1. 文件大小
  2. 節點數
  3. 文件的 UID 和 GID
  4. 輸入/輸出塊
  5. 訪問、修改和更改時間。

您可以使用基本形式的 stat 命令來使用以下語法檢查文件的 inode 編號:

$ stat filename

為了 example:

$ stat file1.txt

該命令為我們提供了文件的 inode 編號 ‘文件1.txt‘ 作為 1078474. 要跳過所有其他信息並僅顯示 inode 編號,請使用以下語法:

$ stat -c %i file_name

為了 example:

$ stat -c %i file1.txt

獲得 inode 編號後,您可以使用 debugfs 命令使用顯示的語法輕鬆獲取文件創建時間:

$ sudo debugfs -R 'stat <inode number>' DEVICE

DEVICE 代表文件所在的塊設備 example /dev/sda1、/dev/sda2 等。要檢查塊設備,請運行以下命令:

$ lsblk

因此,使用我們之前獲得的 inode 編號,命令將是:

$ sudo debugfs -R 'stat <1078474>' /dev/sda

使用 debugfs 查找文件創建時間

創建時間以指令為前綴 時間: 如上面的輸出所示。 我們可以看到該文件是在 2019 年 12 月 13 日星期五 01:39:18 小時創建的。

或者,您可以將完整路徑傳遞給文件,而不是指定 inode 編號,如下所示:

$ sudo debugfs -R 'stat /home/winnie/file1.txt' /dev/sda1

上述命令將產生與使用 inode 編號時相同的結果。

結論

本教程到此結束,希望 Linux 有一個直接的命令來查找文件創建時間。 這裡我們使用了 debugfs 命令來檢查文件的創建時間。