鍍金池/ 問答/Linux  網(wǎng)絡安全/ 如何將部分文件mv成無后綴形式?

如何將部分文件mv成無后綴形式?

我要將一個mudlib轉(zhuǎn)換編碼從gbk轉(zhuǎn)換為utf8,我可以把*.c*.h等帶后綴的文件轉(zhuǎn)換后更名為*.c.bak*.h.bak保存,然后:
find . -type f -name "*.c" | xargs -I {} sh -c "mv {}.bak {}"
就可以保存。

問題是有一些文本文件文件名沒有后綴,我要怎么寫才可以把這類xxx.bak的文件重新命名為xxx? 我試過:
find . -type f -not -name "*.c" | xargs -I {} sh -c "mv {}.bak {}"
因為現(xiàn)在還沒有碰到名字為xxx.bak.bak像這樣的文件,所以還能用。有沒有好的什么方法可以解決這樣的問題?

回答
編輯回答
柚稚

在find里面增加一個條件 -and -not -name "*.bak".
find . -type f -not -name "*.c" -and -not -name "*.h" -and -not -name "*.bak" | xargs -I {} sh -c "mv {}.bak {}".

2017年9月16日 10:48