在 Linux 上递归压缩字幕文件

在 Linux 上递归压缩字幕文件

我有 2 个主文件夹 Peliculas 和 Series,正如你可能猜到的那样,Peliculas 里面有电影(其中一些在自己的文件夹中,一些有超过 1 个文件),而 Series 文件夹中有电视节目。

我需要的是一个命令行或脚本,这样我就可以压缩每个字幕(.srt 文件)并将其移动到主文件夹中,~/MovieSubtitles/We Own The Night.zip就像~/SeriesSubtitles/Masters of Sex S01E11 - Phallic Victories.zip

文件夹结构如下:

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..

而且。好吧。我有很多。真的很多,所以我需要一些脚本。无法手动操作,并且想在之前提到的文件夹中保留每个字幕的备份,这样我就可以上传它们并在需要时提供它们,就像在yifi字幕网站

因此,我需要将每个 srt 递归压缩到 Peliculas 文件夹中,并将 Series 也递归压缩(但在这种情况下分为 2 个级别,因为每个季节也在系列文件夹内的子文件夹中),保留 srt 文件的名称,然后将 zip 放在我家的一个文件夹中。

有任何想法吗?

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

谷歌....ing.?...我找到了这个解决方案:

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

(尝试 -iname 'srt',-iname'.srt'、-name '*srt' 以及其他基于 Bendrami 的想法的格式,它们都是一样的)

*查找/media/peliculas-名称.srt打印出整个 srt 文件(字幕)列表电影文件夹...但是我一使用-exec

我收到错误 =>发现:缺少“-exec”参数

所以请帮忙……

为了获得一些额外的分数..:P 最好将 zip 文件命名为包含 srt 文件的文件夹,因为它包含电影的全名、年份和质量。

答案1

将此脚本放在你的主目录中:

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

然后运行

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

如果发生任何碰撞,它会提示您应该怎么做。

答案2

我用两行代码让它工作了。

1)

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

它的作用是找到您执行的文件夹中的任何 SRT(字幕文件)。就我而言,/media/peliculas(其中包含我所有的电影)并对其进行最佳压缩,而不包含目录条目(它不会添加垃圾,但会添加电影文件夹...最后对我有用...想对其进行完善)每个 srt 都在其自己的 zip 文件中,称为 srt 文件...因此字幕来自奇爱博士或我如何学会不再担心并爱上炸弹它保存在一个名为奇爱博士或我如何学会停止担忧并爱上炸弹.srt.zip

2)

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

还有这个..最后一部分...它会将所有 zip 文件移动到我家中的一个文件夹中,我将把压缩的字幕保存在那里..然后将它们上传到字幕网站...

相关内容