我有这个脚本,我将其称为“r1”:
for f in "$@"
do
fpath=`dirname "$f"`
file=`basename "$f"`
arc=$fpath"/"$file".rar"
rar a -v1024000 -r -m0 -ep1 -o- "$arc" "$f"
done
它运行良好,但我无法更改档案名称,我希望我可以这样做,结果是:
r1 Myphoto 照片/
应该是一个名为 Myphoto.rar 的档案,其中包含 Photos/ 目录
我该如何修改脚本?
我认为这一行:
file=`basename "$f"`
应该有所不同,这样我就可以根据自己的需要选择档案名称
答案1
以下脚本将准确执行您的要求。
#!/bin/sh
if [ ! $# -eq 2 ]
then
echo " Two arguments needed, a file name for the rar file "
echo " and a directory/file name to be compressed. "
echo " Both can be relative or absolute addresses "
exit 1
fi
if [ -e $1.rar ]
then
echo " File $1.rar already exists. Quitting "
exit 2
fi
if [ ! -d $2 -a ! -e $2 ]
then
echo " $2 is not a directory/file to be compressed. Quitting "
exit 3
fi
file=$1
dir=$2
rar a -v1024000 -r -m0 -ep1 "$file".rar $dir
exit
我添加了绝对最小值的错误检查,以及一行提醒您可以使用此脚本来压缩文件和文件夹。