小编Mar*_* JS的帖子

如何将文件批量移动到与每个文件名对应的文件夹中?

我在一个文件夹中有几部电影。

例如:

~/Downloads/Movies/Movie A (1998).mkv  
~/Downloads/Movies/Movie B (1999).mkv  
~/Downloads/Movies/Movie C (2000).mkv
Run Code Online (Sandbox Code Playgroud)

我想将每个文件放入自己的文件夹中,并将文件夹命名为与文件名相同的名称。我有很多文件,所以如果可能的话,我希望能够批量执行此操作。

例如:

~/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
Run Code Online (Sandbox Code Playgroud)

我曾尝试在此页面上使用 bash 命令

find . -name "*.mkv" -exec sh -c 'mkdir "${1%.*}" ; mv "" "${1%.*}" ' _ {} \;
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误消息:

find . -name "*.mkv" -exec sh -c 'mkdir "${1%.*}" ; mv "" "${1%.*}" ' _ {} \;
Run Code Online (Sandbox Code Playgroud)

文件夹创建正确,但命令无法将文件移动到文件夹中,出现上述错误。

哪一部分

; mv "" "${1%.*}" ' _ {} \;
Run Code Online (Sandbox Code Playgroud)

是不正确的,怎么会这样?

此外,如果您认为还有其他命令或脚本可以完成这项工作,我们将不胜感激。

command-line bash batch batch-rename mv

0
推荐指数
1
解决办法
451
查看次数

标签 统计

bash ×1

batch ×1

batch-rename ×1

command-line ×1

mv ×1