追加の出力なしで日付および時計形式ではなく、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
grep
PCRE(-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