需要帮助 想要一个将接收参数作为目录的脚本,浏览目录以在找到的每个文件上添加正确的扩展名,或者是否是要添加.aaa作为扩展名的目录 文件没有任何扩展名,我必须使用命令文件来确定文件类型(文件没有extyension) 感谢
#!/bin/sh
for dir in "$@"; 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
答案 0 :(得分:0)
你可能意味着这样的事情:
for dir in "$@"
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