Beg*_*ner 6 bash timestamps files
我想使用 bash 将最后一次更改文件的时间添加到文件名中。
例如这个输出ls -la
:
-rw-rw-r-- 1 beginner beginner 5382 Dec 1 17:18 B_F1-1.xml
Run Code Online (Sandbox Code Playgroud)
应该成为
-rw-rw-r-- 1 beginner beginner 5382 Dec 1 17:18 B_F1-1_20141201T1718.xml
Run Code Online (Sandbox Code Playgroud)
我怎么能对 . 中的所有文件执行此操作?
您可以尝试以下操作:
EXT=${FILE#*.}
NAME=${FILE%%.*}
mv "$FILE" "$NAME$(date --reference "$FILE" '+%Y%m%dT%H%M').$EXT"
Run Code Online (Sandbox Code Playgroud)
在脚本中,如果您date
支持--reference
,它将获取参考文件的最后修改日期。