我的脚本的目的:
- 查看目录($Home/Music/TEST)及其子目录中的所有文件(它们是音乐文件)
- 找出每个文件属于哪种音乐流派
- 如果流派为"重度",则将文件移动到另一个目录($Home/音乐/输出)
这是我所拥有的:
#!/bin/bash
cd Music/TEST
for files in *
do
if [ -f "$files" ];then
# use mminfo to get the track info
genre=`mminfo "$files"|grep genre|awk -F: '{print $2}'|sed 's/^ *//g'|sed 's/[^a-zA-Z0-9 -_]//g'`
if [ $genre = Heavy ] ;then
mv "$files" "~/Music/Output/$files"
fi
fi
done
请告诉我如何编写 mv 命令。我尝试的一切都失败了。我收到这样的错误:
mv:无法将"第三眼山体滑坡.mp3"移动到"/音乐/输出/第三眼山体滑坡.mp3":没有这样的文件或目录
请不要认为我写了那行mminfo-这只是从旧的Google搜索中复制的。这远远超出了我。
你对mv
的第二个参数似乎是"~/Music/Output/$files"
如果~
旨在表示您的主目录,则应改用$HOME
,例如:
mv "$files" "$HOME/Music/Output/$files"
~
在引用时不会扩展到$HOME
。
从外观上看,当您将文件移动到其目标时,会出现问题。请检查/Music/Output/是否从当前目录中退出。或者使用绝对路径来确保其安全。此外,最好不要在文件名中使用空格。希望这会有所帮助:)
将此命令放在 mv 命令应该可以解决您的问题之前。
mkdir -p ~/Music/Output