Usando o 7-Zip da linha de comando - nome do arquivo zip com o nome do diretório

1

Eu sei que isso tem que ser fácil, mas eu não sei como fazer isso. Qualquer ajuda seria apreciada.

Eu quero nomear arquivos zip com o nome do diretório.

Digamos que eu tenha um diretório "Zip1" com os arquivos "Doc1.txt" e "Doc2.txt"

Eu entendo tudo sobre fechar a pasta com a exceção de nomeá-la. Não consigo encontrar exemplos de como nomear um arquivo através da linha de comando usando informações de nome de diretório.

Como posso nomear este arquivo zip como "Zip1.7z" sem realmente digitar o nome do diretório, mas ter a linha de comando puxando essas informações do diretório em que os arquivos residem?

Alguém pode ajudar?

    
por Lori Miller 04.09.2012 / 20:04

1 resposta

1

Eu suponho que você esteja em um diretório onde todos os subdiretórios devam ser zipados e que os binários do 7-zip estejam em seu PATH.

Você pode usar o seguinte no Windows (o diretório é %i ):

for /d %i in (*) do 7z ... %i.7z ...

No Linux (o diretório é $i ):

for i in $(find -mindepth 1 -maxdepth 1 -type d) ; do 7zr ... $i.7z ... ; done

Mais curto mas menos robusto:

for i in */ ; do 7zr ... ${i%/}.7z ... ; done

Exemplo para zipar todos os arquivos .txt em todos os diretórios que começam com backup- :

Windows:

for /d %i in (backup-*) do 7z ... %i.7z %i\*.txt

Linux:

for i in backup-*/ ; do 7zr ... ${i%/}.7z $i/*.txt ; done
    
por 04.09.2012 / 20:32

Tags