使用file命令在shell脚本中按类型重命名文件

时间:2017-10-15 20:27:05

标签: bash shell file rename

我尝试使用shell脚本重命名一些没有任何扩展名的文件。

例如我现在有这个结果:

pi@raspberrypi:~/volume1 $ sh test.sh
01  test2.sh  test3.sh  test.sh
/home/pi/volume1/test2.sh: Bourne-Again shell script, ASCII text executable
/home/pi/volume1/01/02/**000022223333434444440000**: **gzip** compressed data, last modified: Mon Oct  9 04:17:03 2017, from Unix

我想在000022223333434444440000.gzip文件中重命名000022223333434444440000文件

和PDF或ODT文件相同将是完美的。

我的脚本适用于gzip文件:

#!/bin/bash

PWD=/home/pi/volume1

ls $PWD

var=$(find $PWD -type f -exec file {} \; | grep "gzip")

您能否请教我如何选择gzip重命名原始文件?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以搜索特定的扩展程序并以这种方式重命名:

while IFS=  read -r -d $'\0'; do
    mv "$REPLY" "${REPLY%.*}.gz"
done < <(find /home/pi/volume1 -iname "*.gzip" -print0)