Existe uma maneira de compactar um arquivo para incluir caminhos absolutos no Linux através da linha de comando?
Eu tenho um programa Python que verifica zips e tars em busca de caminhos absolutos e gostaria de criar um arquivo zip para verificar se a função funciona.
Consegui fazer isso com sucesso com um tar. Também pesquisei no Google uma resposta para isso e verifiquei a documentação e o manual do Zip, mas não encontrei uma resposta clara.
Responder1
$> zip file.zip $PWD/test.txt
adding: path/to/test.txt (deflated 5%)
$> unzip -l file.zip
Archive: file.zip
Length Date Time Name
--------- ---------- ----- ----
20 03-11-2019 21:32 path/to/test.txt
--------- -------
20 1 file
Há também uma opção para isso:
$> zip -jj file.zip test.txt
adding: test.txt (deflated 5%)
$> unzip -l file.zip
Archive: file.zip
Length Date Time Name
--------- ---------- ----- ----
20 03-11-2019 21:32 path/to/test.txt
--------- -------
20 1 files
Ele fornece exatamente o mesmo resultado, mas se você começar, /
não poderá, mas poderá especificar isso ao descompactar com -d
a opção.
Sim! isso é uma edição. Me ocorreu que talvez você esteja falando sobre gz, xz, bzip2? Nesse caso, você precisa arquivá-los primeiro, eles não têm o conceito de sistema de arquivos como o tar. zip, rar, 7z, todos eles fazem algo assim.
Responder2
No formato de arquivo ZIP, os caminhos dos arquivos são sempre relativos, veja por exemploesse:
file name: (Variable) The name of the file, with optional relative path. The path stored should not contain a drive or device letter, or a leading slash. All slashes should be forward slashes '/' as opposed to backwards slashes '\' for compatibility with Amiga and Unix file systems etc.
É claro que é possível corrigir um arquivo ZIP para forçar uma barra inicial, mas todos os aplicativos regulares são normalmente protegidos contra esses hacks óbvios(*).
(*) um hack ainda mais irritante foi o arquivo de comprimento quase infinito feito de 0's consecutivos, que é codificado em alguns bytes. Descompactar isso muitas vezes derrubaria sua máquina. Todos os utilitários de manipulação de ZIP detectarão isso agora.