在文件上添加扩展名的Shell脚本
问题描述:
需要此帮助请 想要将参数作为目录接收参数的脚本,浏览thoses目录以便在找到的每个文件上添加正确的扩展名,或者如果它是要添加.aaa的目录作为扩展 的文件,可是没有任何扩展,我必须使用COMAND文件,以确定文件类型(文件没有extyension) 感谢在文件上添加扩展名的Shell脚本
#!/bin/sh
for dir in "[email protected]"; do
for file in "$dir"/*;
do
if [[ -d $file ]]
then
ext=dir
else
file -i * | egrep 'avi|txt|jpeg|pst'
fi
if [file eq avi]
ext=avi
else
if [file eq txt]
ext=txt
else
if [file eq jpeg]
ext=jpeg
fi
done
done
答
你大概意思是这样的:
for dir in "[email protected]"
do
for file in "$dir"/*
do
ftype=$(file -i "$file")
unset ext
case $ftype in
*directory*) ext=aaa
;;
*avi*) ext=avi
;;
*text*) ext=txt
;;
*jpeg*) ext=jpeg
;;
*ps*) ext=ps
;;
*) echo "File '$ftype' not recognised for file $file" >&2
continue
;;
esac
echo "Renaming '$file' to '$file.$ext'"
mv "$file" "$file.$ext"
done
done
请注意,egrep
和file
也不需要报告目录,因此不需要进行-d
测试。
编辑:egrep
是在原来的发布的问题。 添加了unset
有一些'then's失踪。 '''后面应该跟一个空格。 – choroba 2013-02-21 15:51:28