Files

使用“ls”時如何將文件日期轉換為特定格式

  • December 30, 2017

我有以下輸入數據:

-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

如果您使用 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=風格

with -l, 使用樣式顯示時間 STYLE: full-iso, long-iso, iso, locale, 或+FORMAT

FORMAT 的解釋類似於“日期”

如果 FORMAT 是FORMAT1<newline>FORMAT2,則 FORMAT1 適用於非最近文件, FORMAT2 適用於最近文件。

如果 STYLE 以 為前綴posix-,則 STYLE 僅在 POSIX 語言環境之外生效

引用自:https://unix.stackexchange.com/questions/413788