Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как создать архив без добавления данных на которые указывают символьные ссылки?  (Прочитано 4019 раз)

0 Пользователей и 1 Гость просматривают эту тему.

adawdp

  • Автор темы
  • Гость
— Здр.Все!
— Как-то раньше не приходилось, но сегодня попробовал создать архив каталогов в которой находились символьные ссылки.
— Архивы 7z и zip не создаются вовсе, пишет :«Во время добавления файлов в архив произошла ошибка».
— А архивы tar и tar.gz создаются но с теми материалами на которые ссылаются символьные ссылки. Битые ссылки, я так понял, вообще не архивируются.
— Что я должен делать если нужно создать архив без добавления данных на которые указывают символьные ссылки? Удалить все символьные ссылки? Как-то разорвать связи? Вообще как это всё можно обойти?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Я тоже как-то озадачился аналогичным вопросом и пришел к следующим выводам (может быть неправильным):
ссылки не являются обычными файлами, а являются принадлежностью файловой системы, поэтому чистое архивирование не прокатывает;
чтобы как-то их заархивировать надо создать скрипт, который их генерит и уже его архивировать (это не очень удобно, зато надежно).

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Что-то Вы не так делаете. Например tar создает архив со ссылками, но без данных на которые они ссылаются до тех пор пока Вы ему не передадите опции
Цитата: man tar
-h | --dereference           follow symlinks; archive and dump the files they point to
--hard-dereference        follow hard links; archive and dump the files they refer to
для символических и твердых ссылок соответственно
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Автор темы
  • Гость
alexander.pronin, я Вас приветствую, я тоже прочитал про такое, что это не обычный файл. А поскольку это у меня был раздел диска, который я подсоединил в домашний каталог, я создал архив всего раздела, что в общем-то было избыточным :(
partclone.ext4 -c -d -s /dev/sda7 -o /media/MYCOP/sda7.img— Получается так, что ссылки нужно удалять или перемещать, если не нужны для архивирования данные на которые эти ссылки ссылаются?
— Ещё проще может вообще символьными ссылками не пользоваться, а вдруг архивировать данные нужно будет? :)

Пользователь решил продолжить мысль 09 Апреля 2014, 15:31:08:
Azure, да я архивировал из Nautilus'a сейчас попробую консольными командами…

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Отпишитесь о результах экспериментов. Очень любопытно.
ЗЫ. Я тоже архивировал из под наутилуса. Поэтому наступал на те же грабли.
« Последнее редактирование: 09 Апреля 2014, 16:04:46 от alexander.pronin »

adawdp

  • Автор темы
  • Гость
— Предварительные наблюдения следующие, если символьная ссылка на файл тогда она архивируется как ссылка и не тянет за собой в архив файл на который ссылается.
— Если же символьная ссылка на каталог, а не на отдельные файлы в нём, тогда при архивировании в архив тянется содержимое каталога, на который ссылается символьная ссылка :(
— Разницы между консольными командами архивирования и архивированием из Nautilus'a нет…
— Я думаю если к обсуждению подтянутся ведущие Linux-теоретики (по аналогии с физиками-теоретиками :)) они нам легко объяснят логичность такого поведения системы! :)
« Последнее редактирование: 09 Апреля 2014, 16:21:46 от adawdp »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Специально проверил и в Наутилусе (версия 3.4.2). "Глюк" подтверждаю. Просто наверное эта функция в Наутилусе так настроена. Из консоли всё работает предсказуемо (гонял разные варианты.).
NB! Ссылка вкладывается архив с величиной 0 байт, но если на ней "клацнуть" мышкой, то она откроется как папка на которую ссылается. Проверяйте размер в архиве.
Как вариант решения: сделать скрипт-расширение для Наутилуса.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Автор темы
  • Гость
— Не знаю, делал всё в терминале с правильно подобранными параметрами действительно архивирует без вложений данных по ссылкам :) !
7z a XYZ.7z LINK-QWE
tar -cf XYZ.tar LINK-QWE
— Ну например вот так, ну и с другими архивами тоже…
— Так что тему может и можно закрывать, проблема в Nfutilus'e вроде оказалась, закрою к вечеру, может кто-чего допишет…
« Последнее редактирование: 09 Апреля 2014, 17:59:01 от adawdp »

 

Страница сгенерирована за 0.044 секунд. Запросов: 25.