ディレクトリ内のフォルダとフォルダの作成日(または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
できます)oN
om
答え2
通常ls -lc
、これを行う必要があります。しかし、これはファイルとディレクトリを示しています。
したがって、私は詐欺を書いて入力するように求めることができます*/
。ディレクトリだけが一致します。しかし、-d
フラグも必要です。
ls -lcd */
特定のレイアウトが欲しいからといって、ls
必ずしも最良の出力が必要なわけではありません。
stat
お持ちの場合は、次のものを使用できます。
stat --format="%n %z" */
シンボリックリンクがディレクトリを指している場合は、両方ともシンボリックリンクに従います。
これを望まない場合は、以下を使用できますfind
find * -maxdepth 0 -type d -printf "%p %c\n"
再帰したい場合
find * -type d -printf "%p %c\n"