#shell #scripting
#оболочка #сценарии
Вопрос:
Я пытаюсь заархивировать все папки в текущем каталоге.
Результатом должно быть то, что каждая папка становится архивом. Я имею в виду, что архивы должны иметь ту же структуру, что и папки.
Это сценарий, который я написал:
find ~/data_archive_dir
-maxdepth 1
-type d
! -iname "*.zip"
! -iname "*.bz2"
! -iname "*.gz"
-exec zip -r "{}" "{}" ;
но получите старые папки и архивы с тем же именем и файлами с полным путем внутри них. что я делаю не так?
Ответ №1:
for l_dir in ~/data_archive_dir/*/
do
pushd ~/data_archive_dir/
zip -r $(basename "${l_dir}").zip $(basename "${l_dir}")
popd
rm -r "${l_dir}"
done
это то, что я написал.