2012-03-21 91 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