Я работаю в Unix. У меня есть папка, в которой находится набор папок и текстовых файлов. Я хочу заархивировать это в один сжатый файл.
Однако с помощью стандартных команд Unix я хотел бы прочитать дерево каталогов архива, а также прочитать определенный текстовый файл из этого каталога «на лету», выведя его на стандартный вывод.
Это возможно?
решение1
tar
Например, можно использовать :
Чтобы составить список деревьев:
tar tf foo.tar.gz
(У меня естьсценарийдля форматирования вывода.)
Чтобы извлечь определенный файл в stdout:
tar xfO file.tar.gz path/to/txt
В Linux вы можете использоватьархивfs, файловая система на основе FUSE, которая позволяет вам получать прямой доступ к файлам.
(Хотя я не уверен, что этотакой же(Я помню archivefs, который был у меня несколько лет назад в Ubuntu, но он тоже работал похожим образом.)