Você pode tentar adicionar a opção -ep
(exclude path) a rar. Então, quando você adicionar novos arquivos, seria algo como:
rar a -ep archive.rar video/some.flv
mas o rar deve adicioná-lo ao arquivo como simplesmente some.flv
.
Eu tenho um servidor Ubuntu e uso rar
com a função exec()
. Quando eu quero criar um arquivo RAR de meus arquivos, este programa usa seu caminho no meu arquivo RAR.
Por exemplo, se meu arquivo estiver em /home/user/video/some.flv
e meu programa php estiver em /home/user
, ele será adicionado como video/some.flv
- no entanto, quero que o caminho do arquivo seja some.flv
.
Eu também não quero copiar meu arquivo para onde o meu programa de php está, então eu preciso de uma maneira de mudar o caminho. Eu usei isso:
rar rn archive.rar video/some.flv some.flv
... mas quando tento extraí-lo, ele me diz que o rótulo do arquivo está "errado ou danificado". O que eu posso fazer? Eu tenho muitos arquivos grandes em caminhos diferentes e quero que todos eles estejam no caminho raiz do meu arquivo RAR.
Eu assumo que o comando que você executa (do seu aplicativo php) é algo como
rar a archive.rar video/some.flv
De acordo com rar --help
,
ep --- Exclude path from names
Adicionando o -ep
como assim
rar a -ep archive.rar video/some.flv
faz com que os caminhos sejam omitidos no rar, e todos os arquivos que você adicionou aparecerão na pasta para a qual foram extraídos e não em uma subpasta.
Não consegui descobrir como fazer o mesmo que tar
' -C
, mas espero que isso seja o que você precisa.