A necessidade parece com patch --strip=n
option
Seria desejável ter uma opção como patch --strip=number
(ou -pnumber
) que corta number
componentes do caminho no início (ref. Comparando e mesclando arquivos: patch diretórios ).
Outra solução, aplicabilidade
Na falta disso, há outra solução, meio que trabalhosa, mas funciona.
No meu caso, eu queria sobrescrever um diretório cheio de arquivos existentes com o conteúdo de um zip, sem extrair o zip completo primeiro.
Quando esta solução funciona e a solução @ Gilles está disponível, a segunda também funciona. No entanto, esta solução não requer a disponibilidade de um sistema de arquivos FUSE.
Como fazer
Supondo que você conheça o diretório extra, no seu caso omeka-1.5.1
, você pode fazer isso:
mkdir omeka
ln -s . omeka/omeka-1.5.1 # create a symlink that redirects output
unzip omeka-1.5.1.zip -d omeka/
rm omeka/omeka-1.5.1 # remote symlink
unzip
tentará descompactar para omeka-1.5.1
, que é na verdade um link simbólico para conter dir. Como resultado, os arquivos serão carregados em omeka
diretamente.
Variantes possíveis
Você pode imaginar variantes para redirecionar uma ou mais partes de uma hierarquia de defuntos.
ln -s ../myfoo omeka/omeka-1.5.1/foo
ln -s ../../mybarxyzzy omeka/omeka-1.5.1/subdir/bar
Conclusão
Esta solução é um tanto específica, mas tem seus casos de uso e eu acabei por usá-la.