Удалите файлы из архива tar

Некоторые рекомендации,

Это - вероятные / медиа, будет cleared HAL, таким образом, во время начальной загрузки, путь не существует, поэтому монтирование перестало бы работать.

Необходимо или изменить путь монтирования, например, к/mnt/Machintosh,

Или используйте инструменты пространства пользователя, например, udisks для монтирования его автоматически (это гарантирует корректный путь, например,/media/VOLUME_NAME),

Для использования udisks добавьте mac.desktop в ~/.config/autostart,

[Desktop Entry]
Exec=Mount Mac Disk
Name=udisks --mount /dev/XXX
Type=Application

(Отметьте вторую работу решения только графическими пользователями),

18
21.03.2013, 23:07
3 ответа

(отредактированный, поскольку я неправильно понял вопрос, который был с тех пор отредактирован также),

Лучшее, которое можно сделать, должно извлечь, удалить и повторно сжать весь файл.

unxz < foobar-old.tar.xz | tar --delete foo/bar | xz > foobar-new.tar.xz

Не возможно удалить файлы из tar непосредственно.

tar является потоком, первоначально предназначенным для ленточных накопителей, которые не делают случайный, ищет хорошо - в то время как в теории могло быть возможно в дисковой файловой системе перфорировать дыру / переписывают остающийся файл, со сжатием, вопрос спорен как большинство, если не все методы сжатия в большой степени зависят от содержания, которое произошло ранее в файле. Чтобы сделать это на месте, Вам было бы нужно очень детальное знание об обоих метод сжатия, а также формат файла tar. Это - сложность к точке, которую никто даже не побеспокоил бы ею. Более дешево просто иметь в наличии файлы и проигнорировать их.

При необходимости в этой функциональности tar, вероятно, не, что Вы хотите.

14
27.01.2020, 19:46
  • 1
    Те файлы составляют 35% размера архивов. Ограничения, на которые Вы указываете по-видимому, только применяются, если я переписываю файл, не, если я изменяю его неуместный, который я могу сделать (у меня есть достаточно пространства для сохранения упакованного архива дважды). Есть ли такой инструмент? –  FUZxxl 21.03.2013, 22:57
  • 2
    , я, возможно, неправильно понял Ваш вопрос затем. Если Вы готовы распаковать tar, в конце концов, и переупаковать его, (только, на самом деле не создавая просмоленные файлы - т.е. прямой tar, чтобы смолить канал), это может быть возможно. –  frostschutz 21.03.2013, 23:01
  • 3
    Да, я могу сделать это. Просто, что файлы имеют uids/gids/attributes, я должен сохранить. Кроме того, у меня нет достаточного дискового пространства для сохранения распакованного представления. У меня есть достаточно пространства для сохранения двух упакованных архивов все же. –  FUZxxl 21.03.2013, 23:05
  • 4
    Это не проблема вообще. Если я могу сделать это в одной передаче, время не будет слишком длинным. Я не могу вообразить формат архива, который допускает быстрый deletation при фактическом выпуске устройства хранения данных. –  FUZxxl 21.03.2013, 23:20
  • 5
    --wildcards помощь... Я должен был включать ./ в начале шаблона, хотя... –  Gert van den Berg 05.03.2018, 14:59

Согласно руководству, можно передать список имен файлов к tar только извлечь их. Например:

$ tar --file archive.tar --list
foo
bar
baz

$ tar --file archive.tar --extract foo
-4
27.01.2020, 19:46
  • 1
    , который я не вижу, как - извлечение помогает мне. Вы могли уточнить? Следует иметь в виду, что я не могу распаковать архив (или существенные части его) к диску. –  FUZxxl 21.03.2013, 23:07
  • 2
    Только отправьте ссылки: это - Wiki - добавляет достаточное содержание для нее, чтобы быть ненужным, чтобы люди оставили страницу для понимания ответа. –  jasonwryan 22.03.2013, 00:02

GNU tar имеет параметр - delete , который в настоящее время работает и с архивами.

Используйте его, например, так:

tar -vf yourArchive.tar --delete your/path/to/delete

Осторожно: Скорее всего, не будет работать ни с какими магнитными лентами. Но tar не имеет проблем при работе в конвейере, поэтому вы можете просто использовать временный tar-файл и впоследствии перезаписать им ленту.Он также не будет работать со сжатыми файлами, поэтому вам придется распаковать файл.

Кроме того, операция в любом случае будет довольно медленной из-за (по замыслу) линейной природы упакованных tar-архивов.

17
27.01.2020, 19:46

Теги

Похожие вопросы