1

iwatch用来监视目录中的变化——只要将新的视频文件添加到目录中,我就会抓取该文件并使用 ffmpeg 为其添加覆盖声音。这是脚本:

iwatch -e close_write -c "/root/bin/ffmpeg -i %f -i /var/www/video/sound.mp3 -map 0 -map 1 -codec copy -shortest /var/www/new/video/${%f:15}" /var/www/video

但我有一个问题。我将新创建的文件移动到不同的目录,我需要用相同的文件名保存它,但iwatch只有%f返回完整路径的变量。知道路径的第一部分始终是"/var/www/video/",我可以使用${%f:15}文件名来获取子字符串。

但是下面的脚本不起作用 - bash 说"bad substitution"。所以问题就在这里 - 当我尝试将文件移动到新目录时:

/var/www/new/video/${%f:15}

什么是正确的语法,实现我的目标的方式?

4

1 回答 1

1

您可以使用basename命令的输出:

/var/www/new/video/`basename %f`
于 2013-10-15T08:30:21.193 回答