Спасибо всем в этом вопросе, который помог мне, это ответ, который я придумал, он находит все директории, которые являются 4-м каталогом, вне корневого каталога / папки, а затем переходит в один каталог за раз, получает все файлы и работает с ними в самом внутреннем цикле. после того, как все выбранные файлы завершены, он перемещается на следующую, основанную на их 4-м месте, и его подкаталог затем делает то же самое
, контролируемое вводом пользователя, о том, сколько директорий он хочет, чтобы он работал и где
#!/bin/bash
typeset -i f d control DirCountDn fileCount dirCount
let f=0 d=0 control=1 DirCountDn=0 fileCount=0 dirCount=0
amount_of_dir_to_work_on="4"
working_dir="/media/data/music"
#CONTROL LOOP keeps it one dir at a time
for i in 1
do
# get all of the names of the base dir to change name a var containing ampunt of basenamedir in last place here
find "$working_dir" -mindepth 1 -maxdepth 1 -type d | while [ $DirCountDn -lt $amount_of_dir_to_work_on ] ;
do read DIRNAME;
echo "$DIRNAME"
echo
MAXMP3="$(find "$DIRNAME" -type f -name "*.mp3" | wc -l)"
echo;echo;echo
echo "amount of mp3 "$MAXMP3" in "$DIRNAME""
echo;echo;echo;echo
find "$DIRNAME" -type f -name "*.mp3" | while [ $fileCount -lt $MAXMP3 ] ;
do read FILENAME;
echo;echo
echo "***************************************"
echo "FILENAME is "$FILENAME""
DIRNAME=${DIRNAME#*/*/*/*/}
DIRNAME=${DIRNAME//\/*}
echo "DIRNAME is "$DIRNAME""
echo
echo " work each mp3 file in incurments until Dir is finised will all mp3 files"
echo "rename dir then make provisons to move it somewhere else"
echo "then move it - go onto nest directory within the tree root dir"
echo "amount of filename "$fileCount""
echo "******************************************"
let fileCount++
echo "count on file names "$fileCount""
echo;echo
done
let dirCount++
echo "Dir Count "$dirCount""
echo;echo
let DirCountDn++
#reset fileCount for next dir
let fileCount=0
done
echo "this is i -> "$i""
done
# returns sub dir only one deep and not working dir
#find /dir/dir/dir/getThisOneNameOnly -mindepth 1 -maxdepth 1 -type d -exec basename {} \;
Оказалось, что это аппаратный дефект. Я получил новый диск, и все работает, как и ожидалось.