tar archive com determinada ordem de descompactação

2

Para tornar o processo de descompactação o mais robusto possível, eu gostaria que um arquivo tar (.gz) fosse descompactado em uma determinada ordem, de modo que uma queda de energia ou outra seja menos provável de causar danos.

Como exemplo, tenho a seguinte árvore de diretórios:

.
├── b
└── foo
    ├── a
    └── c

e eu quero que eles sejam descompactados na ordem

./foo/a
./b
./foo/c

Eu pretendo usar o GNU tar com a opção --format=oldgnu (para manter compatível com o Busybox ' tar ) em bash . Eu estaria aberto a usar outras ferramentas também, mas o formato é necessário.

Usando A / --append , isso deve ser possível (ou assim pensei). Mas de alguma forma eu falhei em todas as minhas tentativas até agora, por exemplo:

  • $ tar c ./foo/a | tar A ./b > test.tar
    tar: Options '-Aru' are incompatible with '-f -'
    
  • $ tar Af <(tar c ./foo/a) ./b > test.tar
    tar: Cannot backspace archive file; it may be unreadable without -i
    tar: /dev/fd/63: Cannot write: Bad file descriptor
    tar: Error is not recoverable: exiting now
    

(Eu testei sem a opção format e sem o arquivo ./foo/c no começo.)

    
por phk 27.06.2016 / 21:11

1 resposta

4

tar irá descompactar seu arquivo na ordem em que foi criado.

( echo foo; echo foo/a; echo b; echo foo/c ) | tar --no-recursion --files-from=- -cvf /tmp/tar.tar

e

tar tvf /tmp/tar.tar
drwxr-xr-x roaima/roaima 0 2016-06-27 20:20 foo/
-rw-r--r-- roaima/roaima 0 2016-06-27 20:20 foo/a
-rw-r--r-- roaima/roaima 0 2016-06-27 20:13 b
-rw-r--r-- roaima/roaima 0 2016-06-27 20:20 foo/c
    
por 27.06.2016 / 21:15

Tags