web-dev-qa-db-ja.com

'ls'を使用するときにファイルの日付を特定の形式に変換する方法

次の入力データがあります。

-rw-rw-r--. 1 abmnyu abmnyu 0 Dec 30 07:06 ffd_in_imp_bus.dat
-rw-rw-r--. 1 abmnyu abmnyu 0 Dec 30 07:06 ffd_ik_imp_bus.dat

私は欲しい Dec 30形式で表示されます20171230使用中ls -l、以下に示すように:

-rw-rw-r--. 1 abmnyu abmnyu 0 20171230 07:06 ffd_in_imp_bus.dat
-rw-rw-r--. 1 abmnyu abmnyu 0 20171230 07:06 ffd_ik_imp_bus.dat
3
Nithin Kumar

GNU ls(これはLinuxシステムでは標準です)を使用している場合、日付/時刻形式を変更するために使用できる--time-styleオプションがあります。

必要なものに最も近い組み込み形式はlong-isoです。

例えば.

$ ls -l --time-style=long-iso
total 1
-rw-r--r-- 1 cas cas 0 2017-12-30 21:26 ffd_ik_imp_bus.dat
-rw-r--r-- 1 cas cas 0 2017-12-30 21:26 ffd_in_imp_bus.dat

GNU dateと同じ日付フォーマット指定を使用してカスタムフォーマットを使用することもできます:

$ ls -l --time-style='+%Y%m%d %H:%M'
total 1
-rw-r--r-- 1 cas cas 0 20171230 21:26 ffd_ik_imp_bus.dat
-rw-r--r-- 1 cas cas 0 20171230 21:26 ffd_in_imp_bus.dat

man lsから:

-time-style = STYLE

-lを使用して、スタイルSTYLEを使用して時間を表示します:full-isolong-isoisolocale、または+FORMAT

FORMATは `date 'のように解釈されます

fORMATがFORMAT1<newline>FORMAT2の場合、FORMAT1は最近ではないファイルに適用され、FORMAT2は最近のファイルに適用されます。

sTYLEの前にposix-が付いている場合、STYLEはPOSIXロケールの外部でのみ有効になります

7
cas