sh -c "cd /tmp/sub_dir/pertinent_dir/../ \
&& zip -r pertinent_dir.zip pertinent_dir/*"
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?
Você poderia usar jar em vez de zip:
jar cfM /tmp/sub_dir/pertinent_dir.zip -C /tmp/sub_dir pertinent_dir