-1

У меня есть этот скрипт, я назвал его "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 Photos/

должен быть архив под названием Myphoto.rar, содержащий фотографии / каталог

Как мне изменить скрипт?

Я думаю, что эта строка:

file=`basename "$f"`

должен отличаться, так что это позволит мне выбрать имя архива самостоятельно

1 ответ1

0

Следующий скрипт сделает именно то, что вы просите.

 #!/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

Я добавил абсолютный минимум проверки ошибок и строку, напоминающую вам, что вы можете использовать этот скрипт для сжатия файлов и папок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .