У меня есть несколько фильмов в папке.
Например:
~/Downloads/Movies/Movie A (1998).mkv
~/Downloads/Movies/Movie B (1999).mkv
~/Downloads/Movies/Movie C (2000).mkv
Я хотел бы поместить каждый файл в его собственную папку и назвать папку идентичной имени файла. У меня есть много файлов, таким образом, я хотел бы смочь сделать это в пакете, если это возможно.
Например:
~/Downloads/Movies/Movie A (1998)/Movie A (1998).mkv
~/Downloads/Movies/Movie B (1999)/Movie B (1999).mkv
~/Downloads/Movies/Movie C (2000)/Movie C (2000).mkv
Я попытался использовать команду удара на этой странице
find . -name "*.mkv" -exec sh -c 'mkdir "${1%.*}" ; mv "" "${1%.*}" ' _ {} \;
Однако я получаю сообщение об ошибке:
mv: cannot stat '': No such file or directory
Папка создается правильно, но команде не удается переместить файл в папку, и я получаю вышеупомянутую ошибку.
Какая часть
; mv "" "${1%.*}" ' _ {} \;
является неправильным, и как так?
Кроме того, если бы существуют другие команды или сценарии, Вы думаете, сделал бы задание, которое ценилось бы.
""
должен быть "$1"
. Тот аргумент mv
должен быть файл, который будет перемещен, и очевидно это нельзя оставить пустым.