Как Вы увеличиваете объем файлов перемещения в папки, соответствующие названию каждого файла?

У меня есть несколько фильмов в папке.

Например:

~/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%.*}" ' _ {} \;

является неправильным, и как так?

Кроме того, если бы существуют другие команды или сценарии, Вы думаете, сделал бы задание, которое ценилось бы.

0
задан 1 November 2018 в 20:11

1 ответ

"" должен быть "$1". Тот аргумент mv должен быть файл, который будет перемещен, и очевидно это нельзя оставить пустым.

5
ответ дан 27 October 2019 в 05:59

Другие вопросы по тегам:

Похожие вопросы: