Я работаю над автоматизированными скриптами, работающими на Linux-коробке (Debian). Эти сценарии запускаются из планировщика и управляют файлами в своих собственных каталогах.

В конце скриптов мне нужно удалить временные файлы.

В настоящее время у меня есть что-то вроде этого:

#check that some variables are not empty
if [[ -z $var1 || -z $var2 || -z $var3 ]]; then
  echo "Some var is empty"
  exit 1
fi
workingdir=$var1/$var2
#some checks on working directory
if [[ ! -d $workingdir ]]; then
  echo "Directory error"
  exit 1
fi
cd $workingdir
if [[ $(pwd) != $workingdir ]]; then
  echo "Change directory error"
  exit 1
fi
#...here goes the main part of the script
#and at the end, the "cleaning"
if [[ -d $workingdir/temp/$var3 ]]; then
  find $workingdir/temp/$var3 -delete;
fi

Есть ли у вас какие-либо идеи, которые я мог бы использовать, чтобы уменьшить риск удаления что-то не так?

Спасибо.

С уважением

1 ответ1

1

Ваш скрипт знает, какие файлы созданы и где они находятся.

Это общее утверждение является важным моментом здесь. Если вы действительно хотите удалить только файлы, которые вы создали, следите за тем, какие файлы вы создаете. Так что вы обычно делаете:

TMP1=$(mktemp -t example.1.XXXXXX)
TMP2=$(mktemp -t example.2.XXXXXX)

создать свои временные файлы (подробнее см. man mktemp ) и сделать

rm -f "$TMP1" "$TMP2"

когда вы закончите с временными файлами. Кроме того, вы можете создать временный каталог и удалить его.

То, что вы не должны делать, это

rm -f /tmp/example.?.*

потому что он также удалит временные файлы для других запущенных экземпляров скрипта.

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