“Aviso de zip: nome não correspondido” ao compactar um diretório


19

Eu tenho uma pasta com cerca de 180 GBs, preciso compactá-la como:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

Mas diz:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

Então, como faço isso? Em outra nota, archive.zipnão existe, mas estou tentando criá-lo.


Tentezip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Respostas:


7

Seu comando deve ser:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

A página do manual ( man zip) mostra que você deve ter:

zip <options> <archive> <inpath...>

Além disso, a -ropção de recursão é altamente recomendada sobre o shell "*" para isso.


Outra armadilha relacionada é um simples erro de digitação (por exemplo, se você copiou o comando de um script para outro). Por exemplo, em vez de winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*, você digita acidentalmente winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Observe o extra Output.zip... feito facilmente!
precisa saber é o seguinte

23

Este erro também pode ser causado por links simbólicos na árvore de diretórios que estão sendo compactados.

Se estes não tiverem destinos corretos (talvez porque o diretório tenha sido movido ou copiado de outro lugar), o zip tentará seguir o link simbólico para arquivar o arquivo de destino.

Você pode evitar isso (e também obter o efeito que provavelmente deseja, que não é arquivar várias cópias do arquivo) usando a opção -y(ou --symlinks).


0

Use o sinalizador recursivo ( -r) em vez de glob ( *) para corresponder aos arquivos a serem compactados. Além disso, especifique o nome do arquivo primeiro e depois forneça a lista de arquivos:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

Também recebi esse erro no passado por um motivo diferente que o -rcomutador não pode corrigir. O que aconteceu foi que eu baseiei arquivos para adicionar ao zip com o seguinte código / variável de bash

somevar=`ls -1 somedir`

O problema é que lsapenas lista os arquivos como se estivessem no diretório atual e é por isso quezip está reclamando (essencialmente, os arquivos não existem para compactar porque está sendo instruído a procurar no diretório incorreto / atual).

Se este for o seu problema, você pode corrigi-lo da seguinte forma:

somevar=`ls -1d somedir/*`

Como você pode ver, usei a -dopção e também /*no final do nome do diretório e, em seguida, os arquivos foram adicionados com sucesso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.