Comando Zip criando um diretório enquanto descompacta o arquivo

0

Estou criando um arquivo zip no script, quando executo o script e vou para a pasta de destino e descompacte o arquivo zip que criei no script, ele está criando um diretório e descompactando o arquivo nesse diretório.

Abaixo está o código no script.

for fname in 'cat $Filenm'
 do
  echo $fname
  fnme=$(echo ${fname}|awk -F\/ '{print $8}')
  echo $fnme>>$scriptLog
  tofilename="${date_new}_${fnme}"
   zip -r $tofilename.zip $fileDir/$fnme
  rm $fileDir/$fnme
  mv $tofilename.zip $todir

Quando eu vou para $todir após a execução do script e descompacte o $tofilename.zip , ele está criando o $fileDir no $todir e descompactando o arquivo lá, então em $todir eu tenho que entrar como 5 sub diretórios para ver meu arquivo de texto.

Eu quero que o arquivo de texto no arquivo zip seja descompactado no $todir , mas não do jeito que está acontecendo.

Obrigado antecipadamente.

    
por New_user 28.07.2018 / 06:28

1 resposta

2

Você pode usar a opção -j para zip ( -j para "caminhos de lixo"), que descartará o nome do diretório e manterá apenas o nome do arquivo.

Além disso, você não precisa da opção -r ( -r para "recursar em diretórios") já que você está passando um único nome de arquivo (a opção -r é útil quando você deseja armazenar um toda a árvore de diretórios no zipfile.)

Portanto, esta linha deve ser suficiente para armazenar o arquivo no arquivo zip sem o nome do diretório:

zip -j $tofilename.zip $fileDir/$fnme

Outra opção é manter o caminho completo do diretório no zipfile e simplesmente descartá-lo quando você descompactá-lo, passando o comando unzip a opção -j , que funciona de maneira semelhante a como essa opção funciona ao compactar. / p>     

por 28.07.2018 / 06:40

Tags