Bash - ファイルリストを含むtxt + ctime

Bash - ファイルリストを含むtxt + ctime

ディレクトリ内のフォルダとフォルダの作成日(またはctime)を一覧表示するtxtを作成できますか?

それは次のとおりです。

フォルダー.txt:

フォルダ1 2016/08/02

フォルダA 2016/08/03

現在持っている情報は次のとおりです。しかし、作成日はありません。

find /directory/* -type d -exec bash -c 'echo ${0#/directory/}' {} \; > /directory/folders.txt

ベストアンサー1

ctimeありますので参考にしてくださいinode 変更状態時間、生成時間ではなく、inode生成時間とも呼ばれる生成時間は時々呼び出されますが、btimeすべてのUnicesまたはすべてのファイルシステムで使用できるわけではありません。

たとえば、Linuxでは、ほとんどの基本ファイルシステムに出生時間が記録されますが、現在それを取得できるAPIはありません。

それにもかかわらず、これはinodeが最後にアクティブになった時間です。これは、データが挿入された時期(通常はinodeが作成された後に発生します)を反映するわけではなく、ファイルの名前が変更されたり、ファイルがディレクトリにリンクされた時期(現在参照している名前で)を必ずしも反映するわけではありません。別のディレクトリに接続している場合(または他の名前と同じ)、生年月日は更新されません。

最良の方法は、通常、最後の修正時間を使用することです。これはファイル内のデータの寿命をよりよく表します。

GNUでは、find次のことができます。

find /directory -mindepth 1 -maxdepth 1 -type d -printf '%P %TY/%Tm/%Td\n'

そしてzsh

zmodload zsh/stat
(cd /directory && zstat -LF '%Y/%m/%d' +mtime -- *(D/))

(と比較してソートされたリストを提供します。glob修飾子を使用してソートを無効にしたり、変更時間を使用してソートしたりfindできます)oNom

おすすめ記事