Я пытаюсь извлечь список mp3-файлов на 2 части: 1 для исполнителя и 1 для названия песни. Пока у меня есть это:
#!/bin/bash
for f in *.mp3; do
artist="${f% -*}"
song="${f#*-\ }"
mkdir "$artist"
mv "$f" "$song"
mv "$song" "$artist";
done
Я тестирую созданный мной файл с именем "hi - 1.mp3" (hi/ -/ 1.mp3
), но получаю ошибку mkdir: cannot create directory ‘hi - 1.mp3’: File exists
, которая не позволяет изменить название песни. и переместить его в каталог. Я думал, что это проблема с каталогом, поэтому я попытался вручную проверить, существует ли каталог:
#!/bin/bash
for f in *.mp3; do
artist="${f% -*}"
song="${f#*-\ }"
if [ -d "$artist" ]; then
exit 0
mkdir $"$artist"
fi
mv "$f" "$song"
mv "$song" "$artist";
done
Но поскольку ошибка в том, что каталог существует, он ничего не делает и просто приводит к exit 0
(хотя у меня больше нет ошибки mkdir.) Я также попытался ls -a
во всех моих каталогах, но я не могу найти другой каталог с именем hi - 1.mp3