Files

使用文件名中的日期更改文件修改日期

  • August 1, 2019

根據文件名中提到的日期更改多個文件的最後修改日期

文件是

04-01-1981 XXXXXYYYYZZZZ.xml
19-11-1982 XXXXXYYYYZZZZ.xml
25-12-1981 XXXXXYYYYZZZZ.xml

需要它的原因:我正在遷移一些文章,這裡每個文件都是要發布的文章。並且已經可用的自定義導入實用程序使用文件的最後修改日期作為文章發布日期。希望這會有所幫助並明確其原因。

POSIXly:

for file in ??-??-????' '*.xml; do
 date=${file%% *}
 year=${date##*-}
 day=${date%%-*}
 month=${date%-*}
 month=${month#*-}
 touch -d "$year-$month-$day 00:00:00" -- "$file"
done

使用zsh,您可以將其縮短為:

for f (??-??-????' '*.xml(N))
 touch -d "$f[7,10]-$f[4,5]-$f[1,2] 00:00:00" -- $f

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