![文件名连续编号(多个命令继续编号)](https://linux22.com/image/1179807/%E6%96%87%E4%BB%B6%E5%90%8D%E8%BF%9E%E7%BB%AD%E7%BC%96%E5%8F%B7%EF%BC%88%E5%A4%9A%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%BB%A7%E7%BB%AD%E7%BC%96%E5%8F%B7%EF%BC%89.png)
我正在将多个音乐视频编码为 HEVC 并使用 备份它们1fichier
。rclone
由于这些文件很小(平均 100 MB),当我批量上传时会收到 错误Flood detected: IP Locked
,因此 1fichier
我将 10 个文件压缩并上传。这样以后下载会更方便、更容易。
我为这段代码取了一个别名,并偶尔运行它:
cd ~/ffmpeg && mkdir music && ls -Q hevc | head -10 | xargs -i mv hevc/{} music/ \
&& mv music ~/downloads/music && cd ~/downloads && du -sh music && \
zip -r music.zip music && rm -r music && \
rclone move ~/downloads/ 1fichier:musiczip -P --transfers=1
问题是我必须手动按1fichier
顺序重命名文件。有没有办法music001.zip
在上传 zip 文件之前按顺序对它们进行编号?
我正在考虑这样的事情:
mv music.zip music$NUM.zip
请注意,此命令将在不同时间运行,而不是连续运行。
更新:如果有人感兴趣的话,我简化了上述命令:
ls | grep .mkv | head -10 | zip -@ -m -v music.zip
这将压缩当前目录中的前 10 个 mkv 文件。
cd ~/ffmpeg && mkdir music && ls -Q hevc | head -10 | xargs -i mv hevc/{} music/ \
&& mv music ~/downloads/music && cd ~/downloads && du -sh music && \
zip -r music.zip music && rm -r music
这是先前的命令。
更新 - 2:1fichier
Flood detected: IP Locked
可以通过逐个传输文件来避免开启。使用命令rclone move
append时--transfers=1
(默认为 3)
答案1
将最后使用的数字保存在文件中,例如lastnum
,然后每次读取它并增加它。在 bash 中:
[ ! -f lastnum ] && echo 0 >lastnum
num=$(<lastnum)
let num=num+1
echo $num >lastnum
num=$(printf "%03d" $num)
echo "... using music$num.zip"
答案2
您可以将别名中的命令更改为:
cd ~/ffmpeg && mkdir music && ls -Q hevc | head -10 | xargs -i mv hevc/{} music/ && mv music ~/downloads/music && cd ~/downloads && du -sh music && zip -r music"$(date +%s)".zip music && rm -r music && rclone move ~/downloads/ 1fichier:musiczip -P --transfers=1
zip -r music"$(date +%s)".zip music
将添加自纪元以来的秒数到创建的 ZIP 档案的名称,它看起来将类似于以下内容:
music1611590629.zip
每次运行该命令时,它都会有一个唯一的名称。