2012-03-21 90 views
0

有许多文件和名称,如*.txt;我如何使用shell脚本将所有文件重命名为*YYYYMMDD.txt在Unix中使用shell重命名多个文件

+0

你想添加例子吗?从你的问题中不清楚你想要做什么。 – freespace 2012-03-21 06:53:56

+0

查找'rename'命令(与标准C中的rename()函数不同)和'prename'命令。可能还有很多关于SO的其他问题。 – 2012-03-21 07:11:10

+0

@freespace:对于延迟响应,有许多文件,如a.txt,b.txt,c.txt ...,现在我将所有文件重命名为aYYYYMMDD.txt,bYYYYMMDD.txt,cYYYYMMDD.txt。 – maple 2012-03-28 07:26:57

回答

1

由于这是一个移动操作,如果做错了可能是相当危险的:

运行这首以确保脚本生成正确的命令

ls *.txt | while read FILE; do echo mv "$FILE" "${FILE/.txt/`date +%Y%m%d.txt`}"; done 

然后,当你确信

ls *.txt | while read FILE; do mv "$FILE" "${FILE/.txt/`date +%Y%m%d.txt`}"; done 
+0

感谢您的快速回复。它工作正常。非常感谢! – maple 2012-03-21 06:57:56

+0

很高兴帮助:) http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – 2012-03-21 06:58:50

+1

你不需要'ls';正确的习惯用法是用于*中的FILE;做'... – tripleee 2012-03-21 07:12:09