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

时间:2018-08-22 09:58:05

标签: linux date xargs

让我说 a.txt,b.txt,我想添加日期以查看: a_MMDDYYY.txt,b_MMDDYYYY.txt

我正尝试通过以下方式使用xargsbasename

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

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

谢谢

2 个答案:

答案 0 :(得分:1)

像这样使用命令替换:

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

有关日期格式示例,请参见以下链接:https://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

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

答案 1 :(得分:0)

使用GNU Parallel,它看起来像这样:

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

或者如果文件很少:

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

(也:https://xkcd.com/1179/