群辉文件一键整理(针对ds audio)

因为群辉里面收集的歌曲太多,一开始没有进行分类整理,后期整理实在麻烦,因此写了个脚本一键整理,按歌手对歌曲分类,特此记录。
好像使用此脚本后,drive需要重启
ps":群辉的文件一般都保存在/volume1里面

此次脚本针对的情形如下

  1. 目前的music目录,针对KTV和流行歌两个目录进行整理
    在这里插入图片描述
  2. 脚本歌曲名格式需要是 歌手名 -*
  3. 本次脚本未对定时执行做优化,定时执行可优化脚本,修改temp_file的写入逻辑

链接到群辉ssh,创建shells文件夹,创建如下脚本

用到脚本如下

  1. su 获取管理员权限,需要输入管理员密码(成功后下面不需要输入sudo)
  2. 创建文件夹 sudo mkdir 、/opt/shells; sudo mkdir /opt/shells/txt;
  3. 创建shell脚本: sudo vi /opt/shells/music_manage.sh ,复制如下代码,按Esc后输入:wq回车
  4. 赋予权限: sudo chmod R 755 opt/shells
  5. 执行脚本 sudo sh /opt/shells/music_manage.sh
#!/bin/bash

music_base="/volume1/music"
music_sort_paths=("KTV" "流行歌")
for music_sort_path in "${music_sort_paths[@]}"; do
 music_path="$music_base/$music_sort_path"
echo $music_path
 folders=("")
 temp_file="/shells/txt/$music_sort_path.txt"  # 创建一个临时文件来存储目录名

 # 使用 find 命令并将输出重定向到临时文件
 find "$music_path" -maxdepth 1 -mindepth 1 -type d -print0 > "$temp_file"
 echo $temp_file

 # 读取临时文件中的目录名
 while IFS= read -r -d $'\0' dir; do
    folder_basename=$(basename "$dir")
    if [[ "$folder_basename" != "." && "$folder_basename" != ".." ]]; then
        folders+=("$folder_basename")
    fi
 done < "$temp_file"

 # 打印数组中的每个文件夹名

 for file in "$music_path"/*; do
         if [[ $file != *"-"* ]]; then
          continue;
         fi
         status1=0
     prefix_name=${file%%-*}
         person_name=${prefix_name##*/}

     for folder in "${folders[@]}"; do
      if [[ "$folder" == "$person_name" ]]; then
        status1=1
        mv "$file" "$music_path/$folder"
        break;
       fi
     done

         if [[ "$status1" == "0" ]]; then
     new_folder="$music_path/$person_name"
     mkdir "$new_folder"
     mv "$file" "$new_folder"
     fi
 done
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值