CL-TAR ProjectΒΆ
The CL-TAR project works on making tar files readable and writeable directly
from Common Lisp, without shelling out to a tar executable. There are two sub
projects under the CL-TAR umbrella.
The first is
cl-tar-file. It defines a
single ASDF system: tar-file. This project focuses on reading and writing
physical tar file entries. It is a rather low-level library and it is expected
that not many projects will use it directly.
The second is cl-tar. It
defines several ASDF systems meant for use by other developers: tar,
tar-simple-extract, and tar-extract. This project is a high level interface
built on top of cl-tar-file. It reads and writes logical entries from/to tar
files. Additionally, it contains code to interface with your file system.
Quickstart
You likely want to use cl-tar instead of cl-tar-file directly. Load it with:
(asdf:load-system "tar")If you want to extract a tar archive on any CL implementation, without
preserving all the metadata or symbolic links, run the following:
(asdf:load-system "tar-simple-extract")
(tar:with-open-archive (a "/path/to/file.tar")
(tar-simple-extract:simple-extract-archive a :directory #p"/path/to/extraction/point/"))If you want to extract a tar archive, attempting to preserve symbolic links and
as much metadata as possible, evaluate the following. Note that this requires
osicat to work on your OS and implementation.
(asdf:load-system "tar-extract")
(tar:with-open-archive (a "/path/to/file.tar")
(tar-extract:extract-archive a :directory #p"/path/to/extraction/point/"))cl-tar
The cl-tar repository is located at https://gitlab.common-lisp.net/cl-tar/cl-tar
The latest cl-tar release is v0.2.1, and the manual is here
The manuals for all releases of cl-tar can be found below:
cl-tar-file
The cl-tar-file repository is located at https://gitlab.common-lisp.net/cl-tar/cl-tar-file
The latest cl-tar-file release is v0.2.0, and the manual is here
The manuals for all releases of cl-tar-file can be found below: