Como eu crio um arquivo ZIP que preserva apenas a estrutura do diretório de destino e abaixo?

7

Eu preciso criar um arquivo zip onde o resultado descompactado preserva a estrutura de diretório do diretório especificado para baixo. Eu também preciso fazer isso sem realmente mudar para o diretório.

A minha pergunta é semelhante ao presente . Depois de ter lido muito sobre o assunto, não sinto que alguma coisa tenha respondido completamente à minha pergunta.

Por exemplo, eu tenho:

/tmp
    /sub_dir
        /pertinent_dir
            /sub_folder_1/
                stuff.pdf
                stuff.xls
            /sub_folder_2/
                stuff.pdf
                stuff.xls
            /sub_folder_3/
                stuff.pdf
                stuff.xls

Eu preciso poder executar zip -r /tmp/sub_dir/pertinent_dir.zip /tmp/sub_dir/pertinent_dir/* de forma que o resultado contenha apenas pertinent_dir e abaixo. Mais uma vez, eu preciso fazer isso independentemente do meu contexto de diretório atual. Eu tentei -j , mas isso não parece funcionar. Talvez não seja possível. Há algo que estou perdendo?

    
por humble_coder 25.04.2012 / 04:44

2 respostas

7
sh -c "cd /tmp/sub_dir/pertinent_dir/../  \
&& zip -r pertinent_dir.zip pertinent_dir/*"
    
por 25.04.2012 / 09:32
5

Você poderia usar jar em vez de zip:

jar cfM /tmp/sub_dir/pertinent_dir.zip -C /tmp/sub_dir pertinent_dir
    
por 25.04.2012 / 14:09