我尝试使用此bash脚本执行以下操作,但我已经解开了..
1)在/ usr / incoming /目录中查找扩展名为.mp3的每个文件
2)使用eyeD3去除所有现有的ID3标签
3)使用eyeD3编写标题标签" NEW NAME"返回文件
4)使用mv将扩展名为.mp3的每个文件重命名为latest.mp3,然后强制移动它(因此它将覆盖任何其他具有相同名称的文件)到usr / complete目录。
这一切都与最后一位(No.4)分开。
我知道我对mv命令做错了什么,但我不确定是什么。
以下是代码:
find /usr/incoming/ -name '*.mp3' \
-exec eyeD3 --remove-all -t 'NEW NAME' '{}' \; \
-exec mv -f '*.mp3' latest.mp3 /usr/complete \;
有人能告诉我我的方式错误吗? ;)
答案 0 :(得分:0)
将以后命令中的*.mp3
更改为{}
,以传入您刚刚标记的文件的显式名称。 mv
将拒绝在一次调用中将多个文件重命名为相同的名称 - 当传递两个以上的参数时,它要求最后一个是一个目录 - 无论如何,任何给定的参数都可以找到&#39 ; s -exec
作为文字参数传递,而不是通过shell传递,因此不会扩展整数,不会处理重定向等,除了查找自己的特殊字符串,例如{}
。
find /usr/incoming/ -name '*.mp3' \
-exec eyeD3 --remove-all -t 'NEW NAME' {} ';' \
-exec mv -f {} /usr/complete/latest.mp3 ';'