ext4パーティション内のファイルのcrtimeを単一の数値または文字列として取得する方法

ext4パーティション内のファイルのcrtimeを単一の数値または文字列として取得する方法

追加の出力なしで日付および時計形式ではなく、Unix epoch秒単位で16進または10進形式でファイルのcrtimeを取得する方法を探しています。

このコマンドは追加します追加テキスト出力の上部にある内容(例:「debugfs 1.42.12(2014年8月29日)」)は、grep、sedなどを使用して削除できません。

debugfs -R 'stat <7473635>' /dev/sda7 | grep ctime

このコマンドは改訂するUNIX epoch 秒単位の時間。

date -r default.txt +%s

また、私が見た他のすべての記事では、UNIX時代ではなく日付と時計でファイルのcrtimeを取得します。要約すると、Unix epoch秒単位でext4 fsでファイルを生成する時間だけを取得する方法は何ですか?

ベストアンサー1

grepPCRE(-P)と一緒に使用して、必要な部分を抽出して入力として使用できますdate

date --date="$(sudo debugfs .... |& grep -Po '^crtime.*-\s\K.*$')" '+%s'

または

date --date="$(sudo debugfs .... 2>/dev/null | grep -Po '^crtime.*-\s\K.*$')" '+%s'

たとえば、

$ date --date="$(sudo debugfs -R 'stat <677051>' /dev/sda3 |& grep -Po '^crtime.*-\s\K.*$')" '+%s'
1442488264

以下も使用できますsed

date --date="$(sudo debugfs .... |& sed -n 's/^crtime.*- \(.*\)$/\1/p')" '+%s'

または

date --date="$(sudo debugfs .... 2>/dev/null | sed -n 's/^crtime.*- \(.*\)$/\1/p')" '+%s'

たとえば、

$ date --date="$(sudo debugfs -R 'stat <677051>' /dev/sda3 |& sed -n 's/^crtime.*- \(.*\)$/\1/p')" '+%s'
1442488264

おすすめ記事