¿Cómo crear archivos comprimidos de ruta relativa en The Unarchiver?

Este comando no mantiene la estructura original del archivo, que cuando se lo descomprime, no se descomprime en el lugar donde estaba antes. Por lo que, puede haber alguna forma de conseguir esto, con o sin (otras herramientas disponibles) usando el zip.

Una analogía similar sería un archivo .deb

Donde la data.tar.gz contiene toda la estructura, y al instalarlo se extrae al lugar original. La razón por la que no se pueda tal vez, usar el archivo deb es porque se instala (registrado) en el sistema, donde lo que se quiere es hacerlo sólo para respaldar y restaurar los archivos.

De manera general

Todo archivador que almacena rutas relativas y extrae archivos en el directorio de trabajo actual puede ser «forzado» a hacer lo que se desea. Es necesario crear un archivo desde el directorio raíz, (proporcionar rutas absolutas puede ser suficiente, incluso si se está en otro directorio).

En particular, esto se aplica a zip

La capacidad de interpretar el archivo de destino (archive.zip) relativamente al verdadero directorio de trabajo también es posible, obviamente después del cd / archive.zip significa eso /archive.zip.

Hay algunas condiciones para conseguir lo que se quiere

Cuando se crea un archivo, es necesario proporcionar rutas absolutas a los archivos que se van a archivar. En tu ejemplo /*.txt /carpetaA/*.txt /carpetaB se expanden a rutas absolutas. Por lo que se debe tener en cuenta que es el shell el que expande los * sin comillas, entonces tar (o zip en el ejemplo) recibe las rutas expandidas.

Cuando se crea un archivo, es necesario utilizar -P (o –absolute names)

Si no se hace, tar almacenará cada ruta sin la / inicial (todavía se podrá extraer archivos mientras esté en /, esto es exactamente la forma general introducida anteriormente). Por ello, cuando se extraiga, se necesita usar -P de nuevo. Si no se hace, tar eliminará la / inicial de cada ruta y volverá a crear el árbol de directorios almacenado como un subárbol del directorio de trabajo actual.

Se debe tener en cuenta que todavía se necesita solicitar explícitamente el comportamiento deseado en la extracción

El comando ajustado para la compresión no es suficiente. Esta forma tiene ventajas sobre la forma general, porque el archivo a crear (por ejemplo, archive.tar) puede especificarse como una ruta relativa al verdadero directorio de trabajo. Se pueden especificar algunas rutas (a los archivos que se van a archivar) como relativas, otras rutas como absolutas. En general pueden querer mezclarlas.

¿Por qué no extraer las rutas absolutas por defecto?

El comportamiento por defecto de extraer cada ruta relativamente al directorio de trabajo actual es algo bueno. De esta manera, incluso si es root, no se tiene que preocupar si algún archivo (que se espera que sólo extraiga archivos en el directorio de trabajo actual) resulta ser pícaro y extrae archivos en otros lugares (por ejemplo, podría sobrescribir /etc/passwd). Se puede permitir este comportamiento potencialmente peligroso optando deliberada y explícitamente por el mismo (con cd / previo o con una opción no predeterminada como tar -P).