#!/bin/bash # NOTE: /bin/sh - # Windows # .m3u .m3u8 # # --------------------------------- ------------------------------------ # m3u m3u8 (UTF-8) convert_m3u() { old_filename="$1" # .m3u new_filename="${1}8" # .m3u8 if [ "$is_verbose" = "true" ]; then printf "convert \"${old_filename}\" to \"${new_filename}\"\\n" fi iconv -f CP1251 -t UTF-8 "$old_filename" > "$new_filename" ls_tmp=$(ls -s "$new_filename") new_file_size=${ls_tmp%% *} if [ -f "$new_filename" ] && [ -n "$new_file_size" ] && [ "$new_file_size" -gt 0 ]; then rm -f "$old_filename" rm -f "${old_filename}~" rm -f "${new_filename}~" fi } # chmod_file() { if [ -f "$1" ]; then # if [ "$is_verbose" = "true" ]; then printf "change mode for file \"${1}\"\\n" fi chmod 644 "$1" # - rw- r-- r-- fi } # chmod_dir() { if [ -d "$1" ]; then # if [ "$is_verbose" = "true" ]; then printf "change mode for dir \"${1}\"\\n" fi chmod 755 "$1" # d rwx- rx rx fi } # ---------------------------- ---------------------------------- is_verbose="false" # if [ "$1" = "-v" ] || [ "$1" = "--verbose" ]; then is_verbose="true" shift fi if [ -d "$1" ]; then music_dir="$1" else printf "usage: m3migr [{-v | --verbose}] music_dir\\n" exit 1 fi printf " ...\\n" sleep 1 printf " ...\\n" cur_file="" find "$1" -name "*" -type f -print | while read cur_file do chmod_file "$cur_file" done sleep 1 printf " ...\\n" cur_dir="" find "$1" -name "*" -type d -print | while read cur_dir do chmod_dir "$cur_dir" done sleep 1 printf " m3u m3u8...\\n" cur_file="" find "$1" -name "*.m3u" -type f -print | while read cur_file do convert_m3u "$cur_file" done printf "\\nOK!\\n" exit 0
Source: https://habr.com/ru/post/95210/