LINUX.ORG.RU

Bash архивация

 , ,


1

3

Всем доброго времени суток.Никогда не писал bash скрипты. И тут потребовалось заархивировать кучу папок по отдельности. Есть папка History, в ней кучу папок с макетами и файлами. В ручную архивировать ну малость лень так как их более 100. Начал писать скриптец и тут началась ерунда. Если есть файлы кроме папок они тоже попадают в список. Вот код:

#!/bin/bash
echo "Архиватор каталогов"
cd /media/vol1tb/history
lsfolder="./*"
echo="Список каталогов:"
for search in $(ls -d $lsfolder)
do
echo "$search"
if [ "$1" = "" ]; then
  printf "Вы хотите заархивировать каталог  $search (y/n)? [y]: "
  read choose
else
  choose="$1"

fi

if [ "$choose" = "y" ]; then
  zip -r  "$search" "$search"
else
  printf "Пропускаем $search"
fi

echo ""

if [ "$2" = "" ]; then
  printf "Удалить каталог $search (y/n)? [n]: "
  read choose
else
  choose2="$2"
fi

if [ "$choose2" = "y" ]; then
  printf "Удаление $search"
  rm -r "$search"

else
 printf "Оставляем на месте"
fi
echo clear
echo "Архивация завершена"
done

Архивация происходит, создается архив с именем папки вроде норм. Но если в папке уже есть zip файл то его тоже предлагает архивировать.

И после архивации идет запрос на удаление каталога: ввожу y, все равно выдает что оставляет каталог на месте и не удаляет.

Вопрос подскажите как передать только список директорий без файлов в родительском каталоге.

И где я туплю по удалению


Никогда не писал bash скрипты. И тут потребовалось заархивировать кучу папок по отдельности.

Кстати, поддержу товарища выше. Почему вы решили, что для этого надо писать программку?

Скажем, ГНУ Емакс у вас есть?

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

Скажем, ГНУ Емакс у вас есть?

Будем считать, что есть.

C-x C-f /media/vol1tb/history/
m, чтобы отметить нужные каталоги
! zip -r ? ?
u, чтобы снять метки с того, что не удалять
D
Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

У меня нет графической оболочки. Плюс это только стартовый скрип очистки сервера от хлама. Мне дальше еще надо разбираться так как у меня файло помойка на 9 ТБ и файлы максимум в не по 2 гб. И дальше мне нужно будет пере архивировать каталоги в которых файл изменялись последний раз 2-3 года назад.

lokses
() автор топика
Ответ на: комментарий от lokses

У меня нет графической оболочки.

И что? С каких это пор Емаксу нужна графическая оболочка?

Плюс, это и удаленно должно работать не хуже:

C-x C-f /ssh:user@host:/media/vol1tb/history/

Плюс это только стартовый скрип очистки сервера от хлама.

Не распарсил.

Мне дальше еще надо разбираться так как у меня файло помойка на 9 ТБ и файлы максимум в не по 2 гб.

И что?

И дальше мне нужно будет пере архивировать каталоги в которых файл изменялись последний раз 2-3 года назад.

То есть вы твердо намерены писать программу для выполнения *разовой* задачи?

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

Это не разовая задача. Так как с каждым месяцем будут по дате изменения попадать новые файлы. и их тоже надо архивировать так как денег на расширение файлопомойки не выделяют

lokses
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.