Я нахожусь в системе Linux с ограниченными ресурсами и BusyBox - эта версия tar не поддерживает --append, -r. Есть ли обходной путь, который позволит мне [1] добавлять файлы из каталога B в существующий файл tar из каталога A после [2], чтобы B-файлы появились из каталога A? (Позже, когда кто-то извлекает файлы, все они должны быть в том же каталоге A.)BusyBox tar: добавьте обходное ограничение на ограниченное дисковое пространство?
Ситуация: У меня есть список файлов, которые я хочу использовать tar, но сначала я должен обработать некоторые из этих файлов. Файлы могут использоваться другими процессами, поэтому я не хочу редактировать их на месте. Я хочу быть консервативным при использовании дискового пространства, поэтому мой скрипт копирует только те файлы, которые ему нужно изменить (vs копирует их все, а затем обрабатывает некоторые и, наконец, архивирует их все с помощью tar - если бы я скопировал их все, что я мог бы запустить на дисковое пространство вопросы).
Это означает, что файлы, которые я хочу архивировать, заканчиваются в двух разных местах. Но я хочу, чтобы полученный tar-файл появлялся так, как будто все они находились в одном месте. В конце моего сценария я заканчиваю двумя текстовыми файлами, перечисляющими файлы A и B по имени.
Я думаю, что это просто с полномасштабной версией tar, но мне нужно работать с версией BusyBox (использование ниже). Заранее спасибо за любые идеи!
Usage: tar -[cxtzjaZmvO] [-X FILE] [-f TARFILE] [-C DIR] [FILE]...
Create, extract, or list files from a tar file
Operation:
c Create
x Extract
t List
Options:
f Name of TARFILE ('-' for stdin/out)
C Change to DIR before operation
v Verbose
z (De)compress using gzip
j (De)compress using bzip2
a (De)compress using lzma
Z (De)compress using compress
O Extract to stdout
h Follow symlinks
m Don't restore mtime
exclude File to exclude
X File with names to exclude
T File with names to include
Будет ли эта процедура работать для всех действительных tar-файлов независимо от их содержимого? – user1011471
@ user1011471: Я не понимаю, почему нет. – rici
Причина, по которой я прошу, состоит в том, что некоторые файлы сами являются .gz-файлами. Вы написали: «Если бы вы знали, что в самих файлах нет NUL-байтов (т. Е. Все они были простыми текстовыми файлами), вы можете удалить пустые заголовки, пока не найдете в нем блок с не-0 байтом» ... и ... «Если последние 512 байт файла tar - все 0s» ... – user1011471