工作中經常需要將某些文件的名字改為自己定義的名字,所以每次如果對方提供的文件有更新,那么需要自己手動修改,重復性的工作就要借助腳本的力量使其自動化。
直接上命令:
find . -name "*.bin" | xargs -i mv {} test.so
上述腳本會帶來一個問題,如果腳本所在目錄的子目錄下也有.bin文件,那么這個bin文件就會被移動到當前腳本所在目錄並且重命名為test.so,因為上述語句mv時會將找到的文件移動到當前目錄的。所以下面進行改進:
find . -name "*.bin" | while read name; do newname=$(dirname $name)/test.bin; mv $name $newname; done
這次我們保留了找到文件的目錄信息,重命名的時候帶上目錄信息即可,這樣所有找到的文件都在它原先的目錄下被重命名!bingo~