BASH 脚本中的简单 mv 命令



我的脚本的目的:

  1. 查看目录($Home/Music/TEST)及其子目录中的所有文件(它们是音乐文件)
  2. 找出每个文件属于哪种音乐流派
  3. 如果流派为"重度",则将文件移动到另一个目录($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

相关内容

  • 没有找到相关文章

最新更新