我有下载到一个目录的文件(/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 land
和the.land
类似的名称。
提示:如果您删除第一个 [ 并输入 at 或 T,然后按 TAB(两次?),它将显示所有包含的文件。如果您然后按退格键并再次添加 [,您就会知道您走在正确的轨道上。