根据文件名将文件移动到目录

根据文件名将文件移动到目录

我有下载到一个目录的文件(/media/Downloads/Complete/Movies),但需要一个 bash 脚本根据文件名将它们移动到目标目录(/media/Movies_A& /media/Movies_B

例子:

/media/Downloads/Complete/Movies/Frozen.mkv ---> /media/Movies_A/

Movies with titles A-M go to /media/Movies_A
Movies with titles N-Z go to /media/Movies_B

我还需要它忽略“the”(时间之前的土地)将会去往的/media/Movies_A/The Land Before Time

有人可以帮忙吗?

答案1

这可能就足够了:

cp /media/Downloads/Complete/Movies/[tT]he[\ .][A-Ma-m]* /media/Movies_A/ 
cp /media/Downloads/Complete/Movies/[tT]he[\ .][N-Zn-z]* /media/Movies_B/
cp /media/Downloads/Complete/Movies/[A-Ma-m]* /media/Movies_A/ 
cp /media/Downloads/Complete/Movies/[N-Zn-z]* /media/Movies_B/

我已经用过了cp,所以你可以根据需要重做多次。

命令中的 [] 使其成为字母集合。\ 用于转义空格。匹配[\ .]空格或,.因此您还可以正确复制The landthe.land类似的名称。

提示:如果您删除第一个 [ 并输入 at 或 T,然后按 TAB(两次?),它将显示所有包含的文件。如果您然后按退格键并再次添加 [,您就会知道您走在正确的轨道上。

相关内容