zip arquivos de legenda recursivamente no linux

0

Eu tenho duas pastas principais Peliculas e Series, como você pode imaginar Peliculas tem filmes nele (alguns deles em sua própria pasta, aqueles que têm mais de um arquivo) e a pasta Series tem programas de TV.

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

A estrutura de pastas é algo 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 eu preciso de algum script. Não é possível fazer isso manualmente e quero manter um backup de cada legenda nas pastas mencionadas anteriormente, para que eu possa enviá-las e disponibilizá-las quando necessário, como no site de legendas yifi

Então, o que eu preciso é zipar cada srt na pasta Peliculas recursivamente e Series também recursivamente (mas neste caso em 2 leveles, já que cada temporada também está em uma subpasta dentro da pasta da série), mantendo o nome da pasta. 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/

(testado -iname ' srt', -iname ' .srt', -name '* srt' e outros baseados no idead do Bendrami e é tudo igual)

* find / media / peliculas -name .srt imprime toda a lista de arquivos srt (legendas) na pasta peliculas . mas assim que eu uso -exec

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

so plz help ....

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

    
por Ph1L82 22.12.2013 / 18:42

2 respostas

0

Eu tenho que trabalhar assim com 2 linhas ...

1)

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

o que isto faz é encontrar qualquer SRT (arquivo de legenda) dentro da pasta u executá-lo .. no meu caso .... / media / peliculas (que contém todos os meus filmes) e melhor comprimir sem as entradas de diretório ( Ele não adiciona lixo, mas adiciona a pasta do filme ... trabalhou para mim no final ... gostaria de polir) cada srt em seu próprio arquivo zip chamado como o arquivo srt ... então o subtítulo de Dr. Strangelove ou como eu aprendi a parar de se preocupar e amar a bomba ele é salvo em um arquivo zip chamado Dr. Strangelove ou como eu aprendi a parar de se preocupar e amar a bomba.srt.zip

2)

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

e isso .. a última parte ... bem, ele move todos os arquivos zip para uma pasta na minha casa onde eu vou segurar os submarinos zipados .. e carregá-los em sites de legendas ...

    
por 01.01.2014 / 03:08
0

Coloque este script no seu diretório pessoal:

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

Em seguida, execute

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

Se você tiver colisões, ele perguntará o que fazer.

    
por 23.12.2013 / 06:54