私はls -l
それがファイルの修正時間を提供することを知っていますが、ファイルが閉じられた代わりに(Ctrl+Dまたは他のものを使用して)開かれた時間を提供します。
ファイルの期限を見つける方法を教えてください
[BASH]$date
Wed May 7 10:33:01 EEST 2014
[BASH]$cat >aa
adf
adsf
#waited 8 mins before closing file (time of closing: 10:41)
[BASH]$ls -l aa
-rw------- 1 orclschd staff 9 May 7 10:33 aa
[BASH]$date
Wed May 7 10:41:47 EEST 2014
[BASH]$stat aa
bash: stat: command not found
[BASH]$uname
AIX
ここではというファイルを作成しましたaa
。
10時33分にファイルが作成されましたが、ファイルを閉じてファイル修正日を確認してみると、まだ10時33分に出てきますね。
ただし、ファイル生成終了日(締切時間)は10時41分です。
ファイルが閉じられるタイミングを見つけるコマンドはAIXにありますか?それとも、ファイルを自動的に追跡するためのbashスクリプトを書くことはできますか?
ベストアンサー1
通常のファイルシステムでファイルについて取得できる唯一の情報は、変更(ls -l
)、アクセス(ls -lu
)、および状態変更(ls -lc
)の数です。
ファイルを閉じても何も変更されないため、ファイルの状態にはこれを反映する内容はありません。現在のディレクトリstat
情報はこの閉鎖を反映していませんが、代わりにファイルの変更と変更時間(ディレクトリ内の他のエントリが変更されるまで)を反映しています。
ファイルへのバッファリングされていない書き込みを行う場合、物理ディスクへのアクセスにより変更時間が異なる場合があります。可能しかし、ファイルが閉じられているときは必ずしもそうではありません。しかし、コマンドラインでこれを確認する簡単な方法はないと思います。
ところで。 2番目のレベルの粒度があるため、これらの実験に使用する方が簡単です。stat
つまり、目立つ違いを得るために長く待つ必要はありません。 ;-)