Linuxでファイルの作成時間を表示する方法

Linuxでファイルの作成時間を表示する方法

1. はじめに

Linux でファイルの作成時刻が見つかるかどうかは、ファイル システムの種類によって異なります。ext4 より前の初期のファイル システム (ext、ext2、ext3) では、ファイルのメタデータにはファイルの作成時刻は記録されず、アクセス時刻、変更時刻、変更時刻 (ステータス変更時刻) のみが記録されます。一般的なファイルの基本情報は次のとおりです。

[root@bugwz ~]# stat テスト.file
 ファイル: 'test.file'
 サイズ: 2 ブロック: 8 IO ブロック: 4096 通常ファイル
デバイス: 807h/2055d Inode: 5255117 リンク: 1
アクセス: (0755/-rwxr-xr-x) Uid: (0/root) Gid: (0/root)
アクセス: 2019-12-12 19:11:33.175841399 +0800
修正: 2019-12-12 19:11:37.564970487 +0800
変更: 2019-12-12 19:11:43.079132663 +0800
 生年月日: -
  • アクセス: アクセス時間、ファイル データへの最終アクセス時間 (例: ファイル コンテンツの読み取り)。
  • 変更: 変更時刻、ファイル データの最終変更時刻。 (例: ファイルの内容を変更する);
  • 変更: ステータス変更時刻。変更時刻と混同されやすいです。ファイル属性 (権限、サイズなど) が変更された時刻です。

2. 練習

2.1. ファイルの作成時刻を取得する

ファイルの inode 番号を取得します。以下に示すように、inode 番号は 5255117 です。

[root@bugwz data]# stat /data/test.file
 ファイル: '/data/test.file'
 サイズ: 2 ブロック: 8 IO ブロック: 4096 通常ファイル
デバイス: 807h/2055d Inode: 5255117 リンク: 1
アクセス: (0755/-rwxr-xr-x) Uid: (0/root) Gid: (0/root)
アクセス: 2019-12-12 19:11:33.175841399 +0800
修正: 2019-12-12 19:11:37.564970487 +0800
変更: 2019-12-12 19:11:43.079132663 +0800
 生年月日: -

ファイルが配置されているディスク パスを見つけます。以下に示すように、ディスク パスは /dev/sda7 です。

[root@bugwz データ]# df -h
ファイルシステムサイズ 使用済み 使用可能使用率 マウント先
/dev/sda3 3.9G 2.5G 1.2G 70% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 1.7G 14G 11% /実行
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda1 12G 11G 787M 94% /usr
/dev/sda5 7.8G 4.2G 3.2G 57% /tmp
/dev/sda7 235G 180G 44G 81% /データ
/dev/sda6 7.8G 2.1G 5.3G 29% /var

debugfs を使用してファイルの作成時刻を表示し、作成時刻 crtime が Thu Dec 12 19:05:23 2019 であることを確認します。

[root@bugwz data1]# debugfs -R 'stat <5255117>' /dev/sda7
debugfs 1.42.9 (2013 年 12 月 28 日)
Inode: 5255117 タイプ: 通常 モード: 0755 フラグ: 0x80000
世代: 758605841 バージョン: 0x00000000:00000001
ユーザー: 0 グループ: 0 サイズ: 2
ファイル ACL: 0 ディレクトリ ACL: 0
リンク: 1 ブロック数: 8
フラグメント: アドレス: 0 番号: 0 サイズ: 0
 ctime: 0x5df2206f:12dddfdc -- 2019 年 12 月 12 日木曜日 19:11:43
 atime: 0x5df22065:29ec81dc -- 2019 年 12 月 12 日木曜日 19:11:33
 mtime: 0x5df22069:86b30fdc -- 2019 年 12 月 12 日木曜日 19:11:37
crtime: 0x5df21ef3:d586ca44 -- 2019 年 12 月 12 日木曜日 19:05:23
追加の inode フィールドのサイズ: 28
範囲:
(0):16949121

2.2. 統合スクリプト:

#!/bin/sh
[ $# -ne 1 ] && echo "使用法: $0 {FILENAME}" && exit 1

INODE=`ls -i $1 |awk '{print $1}'`
ファイル名=$1

# パラメータに / が含まれている場合は、パラメータのディレクトリ パスを取得し、ディレクトリを入力します `echo $FILENAME | grep / 1> /dev/null` && { FPWD=${FILENAME%/*};FPWD=${FPWD:=//;cd ${FPWD};FPWD=`pwd`; } || FPWD=`pwd`

配列=(`echo ${FPWD} | sed 's@/@ @g'`)
配列の長さ=${#配列[@]}

((i=${array_length};i>=0;i--)); を実行する
 配列[$i]の設定を解除
 SUBPWD=`echo " "${array[@]} | sed 's@ @/@g'`
 DISK=`df -h |grep ${SUBPWD}$ |awk '{print $1}'`
 [[ -n $DISK ]] && ブレーク
終わり

# ファイルシステムが ext4 でない場合は終了します [[ "`df -T | grep ${DISK} |awk '{print $2}'`" != "ext4" ]] && { echo ${DISK} はタイプ ext4 にマウントされていません。ext4 ファイルシステムのみがサポートされています。;exit 2; }

debugfs -R "stat <${INODE}>" ${DISK}

参考アドレス: https://www.jb51.net/article/176316.htm

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linuxでmore、less、catコマンドを使用してファイルの内容を表示します
  • Linuxはlsofコマンドを使用してファイルのオープンステータスを確認します
  • Linux でファイル属性を表示する詳細な例 (ls、lsattr、file、stat)
  • Linux でフォルダのサイズを表示し、サイズ順に並べ替える方法
  • Linux でファイルシステムのブロックサイズとメモリページサイズを表示する簡単な方法
  • Linux du コマンドでフォルダのサイズを表示し、降順で並べ替える
  • Linuxファイルを表示するコマンドの詳細な説明

<<:  イベントバブリング、イベントキャプチャ、イベント委任に基づく詳細な説明

>>:  MySql インポート CSV ファイルまたはタブ区切りファイル

推薦する

Vue3における7種類のコンポーネント通信の詳細

目次1. Vue3コンポーネント通信方式2. Vue3通信の使い方2.1 小道具2.2 $エミット2...

JavaScript 戦略パターンを使用してフォームを検証する方法

目次概要戦略パターンを使用しないフォーム検証戦略パターンを使用して最適化する戦略パターンの利点要約す...

JavaScript でネットワーク速度をテストする方法

目次序文ネットワーク速度のフロントエンド判定原理のまとめ1. img を読み込むか Ajax リクエ...

インタラクティブデザインでページングと読み込みのどちらを選択するかについての説明

この記事の著者@子木yoyoが個人ブログに投稿したものです。 Web ページでもモバイル アプリでも...

WeChatアプレットでのwxsファイルの素晴らしい使い方をいくつか紹介します

目次序文応用フィルタードラッグファイル間での参照の受け渡しwxsはjsロジック層にパラメータを渡しま...

よく使われる3つのMySQLデータ型

MySQL のデータ フィールドのタイプを定義することは、データベースを最適化するために非常に重要で...

MySQL 5.7.17無料インストール版のインストールと設定

MYSQLバージョン:MySQL Community Server 5.7.17、インストール不要版...

MySQL でストリーミングクエリを使用してデータ OOM を回避する

目次1. はじめに2. JDBCはストリーミングクエリを実装する3. パフォーマンステスト3.1. ...

MySQL データをエクスポートする際の secure-file-priv 問題の解決方法

エラー 1290 (HY000) : MySQL サーバーは –secure-file-priv オ...

JavaScriptはブラウザがIEかどうかを判定します

フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...

MySQL の起動オプションとシステム変数の例の詳細な説明

目次ブートオプションコマンドラインパラメータの長い形式と短い形式設定ファイル構成グループシステム変数...

JS でページのスクリーンショット機能を実装する方法

「ページのスクリーンショット」は、ページポスターの生成、ポップアップ画像の共有など、フロントエンドで...

LinuxスレッドのPID(TID、LWP)を取得するいくつかの方法の詳細な説明

Linux C/C++ では、スレッド レベルの操作は通常、pthread ライブラリを通じて実行さ...

ウェブページ作成における絶対パスと相対パスの違い

1. 絶対パスまず、ローカル コンピューターでは、ファイルの絶対パスは、当然、ハード ディスク上でフ...

MySQL InnoDB ストレージエンジンのメモリ管理の詳細な説明

目次ストレージエンジンのメモリ管理データ ページを LRU キューの先頭に置かないのはなぜですか?ダ...