0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 23
1

TAR: частичный dereference

06.10.2015, 23:30. Показов 720. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени. Пытаюсь создать нужный мне архив в Centos6 с помощью tar, столкнулся с проблемой.
Пусть есть примерно такая структура папок:
site1:
--dir1=>symlink to site2:dir1
--dir2=>symlink to something
--dir3

site2:
--dir1
--dir4

Мне нужно сделать архив содержимого папки site1, причем символическая ссылка dir1 должна быть раскрыта, а все остальные нет. Как я понял, tar-опция --dereference раскрывает все симв. ссылки и поэтому не подходит.
Следующей мыслью было исключить dir1 из архива и потом добавить в него аналогичную папку из site2:
Bash
1
2
3
4
5
6
cd path/to/site1
#тут мы своеобразным образом делаем архив содержимого папки site1 со всеми скрытыми файлами вроде .htaccess,
#не забывая исключить пути "." и ".."
tar -cf ../site1.tar `ls -a | grep -v "^\.$" | grep -v "^\.\.$" | grep -v "^dir1$"` 
cd path/to/site2
tar --append --file=../site1.tar dir1
И вуаля, получаем архив с нужным нам содержимым (в корне которого лежат папки сайта 1 с раскрытой симв. ссылкой dir1)

И все бы хорошо, но я хочу использовать сжатие этого архива, а дописывать в сжатый архив нельзя, это раз. А два - потребуется дополнительное дисковое пространство для архива tar и плюс для созданного архива gz, а хотелось бы сделать все одной конвейерной командой: архив, дописывание в архив, сжатие, шифрование. Большой буфер дисковой квоты для двойного создания архива выделять не хочется.
Сам архив, сжатие и шифрование конвейером делаются успешно, а вот как быть с раскрытием указанной симв. ссылки - ума не приложу. Можно с этим что-то сделать? Буду признателен за любые мысли и наводки!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2015, 23:30
Ответы с готовыми решениями:

Установка файлов tar.gz и tar.bz2
Всем привет! Не подскажите как установить файлы такого типа, месяц назад устанавливал как-то,...

Установка tar и tar.bz2
Уважаемые форумчане! Всем доброго времени суток! Думаю этот вопрос уже поднимался, но я никак не...

Вопросы о tar-архиве.
Здравствуйте! Читаю здесь Упаковываю файлы из текущего каталога в архив, изменяю один из...

Неудается распаковать архив tar
Всем, день добрый! Пытаюсь распаковать архив: tar xjf file.tar.bz2 Пишет: Невозможно write:...

2
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
07.10.2015, 14:04 2
создайте другой каталог и в нем создайте ссылки только на те подкаталоги которые собираетесь запаковать в свой архив и запускайте tar с --dereference.

или делайте как описали, только без сжатия, а сжимайте потом готовый tar архиватором - вполне нормальная практика.
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 23
07.10.2015, 22:04  [ТС] 3
создайте другой каталог и в нем создайте ссылки только на те подкаталоги которые собираетесь запаковать в свой архив и запускайте tar с --dereference.
Тогда раскроются и ссылки внутри этих папок, а мне бы этого не хотелось. --dereference раскрывает все ссылки, а не только 1 уровня.

или делайте как описали, только без сжатия, а сжимайте потом готовый tar архиватором - вполне нормальная практика.
Можно ли при этом избежать единовременного существования на диске и .tar, и .tar.gz архивов? Насколько я понимаю, при сжатии создается дополнительный файл, а исходный потом может быть удален. В таком случае дискового пространства для создания надо гораздо больше, а мне бы этого не хотелось, архивы могут быть на несколько гигабайт.
0
07.10.2015, 22:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2015, 22:04
Помогаю со студенческими работами здесь

Собрать tar.bz2 файл
Как мне собрать (откомпилировать) tar.bz2 ? Опишите всё подробно.

LinuxMint.Установка программ из tar.bz2
Прогрограмма gnome-commander-1.2.8.9.tar.bz2 Делал так: 1.bzip2 -d...

Как установить драйвер видеокарты из архива *.tar.gz
Здравствуйте, господа-умники. Скачал с инета на другом компе драйвер Intel в архиве:...

Как создать архив .tar.gz текущего каталога?
Как создать архив .tar.gz текущего каталога? Например я нахожусь в каталоге user@dom ~/mydata В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru