如何在 Linux 上的文件扩展名前批量添加日期

How to bulk add date before file extension on Linux

假设我有 a.txt, b.txt 我想加上日期看看: a_MMDDYYY.txt、b_MMDDYYYY.txt

我正在尝试按以下方式使用 xargsbasename

basename -s .txt -a *.txt | xargs -n1 -i cp {}.txt {}_$date.txt

我知道我的命令结尾不正确,我只是想弄清楚如何使用它以及如何将内置 "date" 注入 xargs。

谢谢

像这样使用命令替换:

basename -s .txt -a *.txt | xargs -n1 -i cp {}.txt {}_$(date +%d-%m-%Y).txt

有关日期格式示例,请参阅此 link:https://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

您可以在此处了解有关命令替换的更多信息:http://wiki.bash-hackers.org/syntax/expansion/cmdsubst

使用 GNU Parallel 看起来像这样:

printf '%s[=10=]' *.txt | parallel -0 cp {} {.}_$(date +%d-%m-%Y).txt

或者如果只有几个文件:

parallel -0 cp {} {.}_$(date +%d-%m-%Y).txt ::: *.txt

(又作:https://xkcd.com/1179/