2012-03-07 1 views
0

Это инициализатор minecraft. Я пытаюсь заставить его не добавлять дату в резервный zip-файл или tar-файл, а дата указана из функции datepath. Однако я не хочу полностью удалять функцию datepath, поскольку это необходимо для других функций. Я не знаком с сценариями bash, есть ли кто-нибудь, кто знаком с bash, кто может помочь? Это не займет много времени.Как предотвратить использование сценария bash для добавления даты в резервные копии?

mc_world_backup() { 
    get_worlds 
     today="" # If you don't want a folder for each day change to today="" 
    for INDEX in ${!WORLDNAME[@]} 
    do 
     echo "Backing up minecraft ${WORLDNAME[$INDEX]}" 

     case "$BACKUPFORMAT" in 
      tar) 
       path=`datepath $BACKUPPATH/${WORLDNAME[$INDEX]} .tar.bz2 .tar.bz2` 
       as_user "tar -hcjf $path $MCPATH/${WORLDNAME[$INDEX]}" 
       ;; 
      zip) 
       path=`datepath $BACKUPPATH/${WORLDNAME[$INDEX]} .zip .zip` 
       as_user "zip -rq $path $MCPATH/${WORLDNAME[$INDEX]}" 
       ;; 
      *) 
       echo "$BACKUPFORMAT is no supported backup format" 
       ;; 
     esac 
    done 
} 
+0

Похоже, что вы хотите дублировать любые действия 'datepath', за исключением добавления даты. Таким образом, это поможет узнать, что такое 'datepath'. –

+0

является результатом 'path = datepath ...' пути, например '/ data/2012/03/09/myLogfile.zip'? OR '/ path/to/logfiles/myLogFile.20120309.log.txt.zip' (или аналогичный). Не все знают внутренние структуры minecraft, поэтому редактирование вашего вопроса с такими деталями, как «У меня есть этот формат xxxx, и мне нужен этот формат yyyy», также поможет. Удачи. – shellter

+0

Почему две копии суффикса файла переданы в путь date? – Kaz

ответ

0

Почему две копии суффикса файла переданы пути date? Будет ли он принимать пустые строки для них? Если да, то датой будет только суффикс строки пути? В этом случае он может быть удален и в то же время заменяется суффиксом, с расширением параметров оболочки, как

path=`datepath ... "" ""` 
# remove a suffix portion matching <SUITABLE_PATTERN> and append .zip. 
path=${path%<SUITABLE_PATTERN>}.zip 
as_user "zip ..." 

Чтобы узнать, как удалить дату, необходимо будет пример. Синтаксис удаления суффикса $ {VAR% PAT} работает с оболочками оболочки. Например, $ {VAR% [0-9]?} Удалит суффикс типа 3X из строки, но не XY (потому что X не является цифрой).

+0

Я скажу вам, чего я не хочу. Я не хочу, чтобы это было так: world_03/07/2012.tar. Вместо этого я хочу, чтобы это было так: world.tar. Не могли бы вы сказать мне, где я буду вставлять это в свой код? Как я уже сказал, я не знаком с сценарием bash, это чужой сценарий инициализации. –

+0

Как только вы коснетесь его, это ваш сценарий. :) – Kaz

+0

Я сформулировал это неправильно. Это не мой код, поскольку в нем не было написано мной, но оно используется мной. –

1

на основе новой информации в ходе обсуждения в рамках другого ответа:

Если мы имеем переменную $path, которая содержит "world_03/07/2012.tar", мы можем сделать это, чтобы преобразовать его в "world.tar":

path="${path%_??/??/????.tar}.tar" # quotes not needed if path has no spaces 

_??/??/????.tar узора совпадает с суффиксом _03/07/2012.tar и другими аналогичными. Вы можете сделать это более строгим, ограничившись цифрами: _[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9].tar. Это, вероятно, не нужно, поскольку строка исходит из функции с известным равномерным выходом.