zip arquivos de legenda recursivamente no linux

zip arquivos de legenda recursivamente no linux

Eu tenho 2 pastas principais Películas e Séries, como você deve imaginar, Películas contém filmes (alguns deles em pastas próprias, aquelas que possuem mais de 1 arquivo) e a pasta Séries contém programas de TV.

O que eu preciso é de uma linha de comando ou script para poder compactar cada legenda (arquivo .srt) e movê-la para uma pasta na página inicial como ~/MovieSubtitles/We Own The Night.zipe~/SeriesSubtitles/Masters of Sex S01E11 - Phallic Victories.zip

A estrutura de pastas é mais ou menos assim:

on Movies:

Peliculas
|-10 Things I Hate About You (1999) BRRip 1080p
|-10,000 B.C. (2008) BRRip 1080p
|-10th & Wolf (2006) DvDRip
etc...

on Tv Shows:

Series
|-Anger Management
| |-Anger Management 1x
| |-Anger Management 2x
|-Breaking Bad
| |-Breaking Bad 1x
| |-Breaking Bad 2x
| |-Breaking Bad 3x
etc..

E. Bem. Eu tenho muito. Realmente muito, então preciso de algum script. Não consigo fazer isso manualmente e quero manter um backup de cada legenda nas pastas mencionadas anteriormente, para poder carregá-las e disponibilizá-las quando necessário como nosite de legendas yifi

Então o que preciso é compactar cada srt na pasta Peliculas recursivamente e Series também recursivamente (mas neste caso em 2 níveis, pois cada temporada também está em uma subpasta dentro da pasta da série), mantendo o nome do arquivo srt e coloque o zip em uma pasta na minha casa.

Alguma ideia?

/*************
*   Edited
*************/

Google....ing.?... eu vim com esta solução:

:~$ find /media/peliculas/ -name *.srt -exec zip '{}'.zip ~/subtitulos/peliculas/

(tentei -iname 'srt', -iname '.srt', -name '*srt' e outros baseados na ideia de Bendrami e é tudo a mesma coisa)

*encontre /media/peliculas -name.srtimprime toda a lista de arquivos srt (legendas) nofilmespasta... mas assim que eu usar -exec

recebi o erro =>find: argumento ausente para '-exec'

então por favor ajude....

para alguns pontos extras .. :P pode ser melhor nomear o arquivo zip como a pasta que contém o arquivo srt, pois contém o nome completo do filme, o ano e a qualidade.

Responder1

Coloque este script em seu diretório inicial:

#!/bin/sh
x=`basename $1`
zip $2/${x}.zip $2/${x}
rm $2/${x}

Então corra

find /path/to/subtitles -iname '*srt' -exec ~/yourscript.sh {} /path/to/zip/directory

Se você tiver alguma colisão, ele lhe dirá o que fazer.

Responder2

Consegui que funcionasse assim com 2 linhas..

1)

 find  -name *.srt -exec  zip -D9 '{}'.zip '{}' \;

o que isso faz é encontrar qualquer SRT (arquivo de legenda) dentro da pasta que você executa.. no meu caso.... /media/peliculas (que contém todos os meus filmes) e compactá-lo melhor sem as entradas do diretório (não não adiciona lixo, mas adiciona a pasta do filme... funcionou para mim no final.. gostaria de aprimorá-lo) cada srt em seu próprio arquivo zip chamado de arquivo srt... então a legenda deDoutor Strangelove ou como aprendi a parar de me preocupar e amar a bombaele é salvo em um arquivo zip chamadoStrangelove ou como aprendi a parar de me preocupar e amar a bomba.srt.zip

2)

find -name '*.zip' -exec mv '{}' ~/subtitulos/peliculas/ \;

e esta.. a última parte... bem, ele move todos os arquivos zip para uma pasta na minha casa onde guardarei as legendas compactadas.. e as enviarei para sites de legendas...

informação relacionada