2013-10-25 71 views

回答

4
for i in *.txt; do mv $i $(basename -s '.txt' $i).log; done 

甚至更​​簡單,如果你的系統有rename命令:

rename 's/\.txt$/.log/' *.txt 
+0

我沒有重命名,但第一個命令給了我這個:basename -s .txt $ i.log – user2370590

+2

'$(...)'在任何shell中都更好用,以提高可讀性和易用性築巢。 – chepner

+0

@chepner謝謝!然後,我將刪除第一個命令。 –

0
for i in *.txt 
do 
    mv $i ${i%.*}.log 
done 

$ {VAR% 「模式」}在從一開始就變量的內容,直到取消最後模式對應(從結尾)(排除)。所以「。*」在這種情況下剪下.txt。

相關問題