Ситуация: есть директория, которую нужно заархивировать, допустим, /var/site/. Архивирую:
Код: Выделить всё
tar cfz site.tgz /var/site/
Всё ОК, архив создан, внутри всё в порядке.
А теперь самое интересное. Допустим, сразу после этого я создаю директорию /var/site/backup. Снова архивирую:
Код: Выделить всё
tar cfz site.tgz /var/site/
Всё ОК, архив создан. Внутри архива директории /var/site/backup нет.
Я пересоздаю архив/удаляю/создаю снова — новая директория внутри архива всё равно не появляется. Аналогично происходит, если директория существовала на момент первого создания архива, а затем была удалена, и архив сразу после этого был пересоздан — такая директория всё равно остаётся в архиве.
Происходит это только при использовании опции -z (т.е., tar cf site.tgz /var/site/ адекватно реагирует на удаление/создание директорий) которую, естественно, я не могу не использовать. Причём, если поменять название директории, где создаётся архив, или имя архива, всё работает нормально.
Столкнулся с проблемой во время отладки скрипта резервного копирования и чуть не свихнулся, когда опции, только что работавшие как нужно, стали выдавать какую-то фигню.
Собственно, теперь я уже понял, как обойти проблему, но может кто-то может объяснить: почему и, главное, зачем это происходит?
Не похоже на баг, слишком очевидно, и было бы давно исправлено. Короче, терзает любопытство.