Como compactar vários arquivos ou pastas com o WinSCP e manter automaticamente a parte do nome do arquivo?

2

Estou usando o WinSCP e ele tem a opção de usar comandos personalizados remotamente.

Eu quero compactar alguns arquivos e pastas. O WinSCP tem um comando que pode zipar um arquivo ou pasta, mas eu tenho que digitar o nome do zip a ser chamado.

zip -r "!?&Enter an Archive Name:?archive.zip!" !&

Eu gostaria que um comando pegasse o nome do arquivo e o usasse para o zip.

Ou seja. thisnewvideo.mp4 para se tornar thisnewvideo.zip .

Eu tenho muitos arquivos, então digitar cada título vai demorar muito tempo.

Se for possível, eu gostaria de poder fazer vários arquivos de uma só vez e criar um arquivo zip separado para cada arquivo ou pasta, mantendo o arquivo original ou o título da pasta.

Ele precisa ser um arquivo zip.

    
por Ezdub 06.01.2015 / 00:21

2 respostas

0

zip -r 'echo ! | sed 's/\..*$/.zip/'' !

Tudo bem se você quiser vários zip

E monstro assim

ls -q !& > list_1239.txt; zip -9 "!?&FileName:?archive.zip!" $(cat list_1239.txt); rm list_1239.txt

se você quiser um grande arquivo zip com nome personalizado

    
por 03.07.2015 / 14:55
0

O WinSCP não possui um padrão ou qualquer outro mecanismo para extrair nome de arquivo sem extensão (ou substituir a extensão).

De qualquer forma, você pode usar qualquer função que o servidor forneça para conseguir o mesmo. Por exemplo, você pode substituir a extensão usando o comando sed :

echo thisnewvideo.mp4 | sed 's/\..*$/.zip/'

Isso produzirá:

 thisnewvideo.zip

Você pode mesclar isso no comando personalizado WinSCP usando o operador backtick como:

zip -r 'echo ! | sed 's/\..*$/.zip/'' !

Observe que o comando está usando o ! pattern . Quando você o executa para um conjunto de arquivos selecionados, ele é executado uma vez para cada arquivo, produzindo um arquivo .zip para cada arquivo de origem.

Para alternativas, consulte: Extrair o nome do arquivo e a extensão no Bash .

Observe que eu consideraria melhor (e mais fácil) implementá-lo apenas para anexar a extensão .zip (ou seja, thisnewvideo.mp4.zip ) ao final do nome do arquivo, em vez de substituir a extensão. Você evitaria confrontos de nome, se você tiver dois arquivos com o mesmo nome base, apenas uma extensão diferente. Mas eu não conheço suas restrições.

    
por 06.01.2015 / 08:50

Tags