使用iwatch监控目录更改 - 获取新文件的名称不是完整路径?

时间:2013-10-15 08:25:41

标签: linux bash

我使用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}

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

1 个答案:

答案 0 :(得分:1)

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

/var/www/new/video/`basename %f`
相关问题