我的一个文件夹中有几部电影。
例如:
~/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
我曾尝试使用 bash 命令这一页
find . -name "*.mkv" -exec sh -c 'mkdir "${1%.*}" ; mv "" "${1%.*}" ' _ {} \;
但是,我收到错误消息:
mv: cannot stat '': No such file or directory
文件夹创建正确,但命令无法将文件移动到文件夹中,并出现上述错误。
哪个部分
; mv "" "${1%.*}" ' _ {} \;
是不正确的,为什么呢?
此外,如果您认为还有其他命令或脚本可以完成这项工作,我们将不胜感激。
答案1
""
应该是"$1"
。 那个参数mv
应该是需要移动的文件,显然不能为空。