最近本人通过BT下载了一些电视剧,由于电视剧是持续更新的,所以每个BT文件下载1-2集,下载完成后,是这样的。如图所示

每个文件夹内有这么几个文件

现在的需求是要把这些文件夹里的mp4视频文件批量移动到一个新的文件夹内。一个一个移动就太麻烦了。用shell脚本就非常方便。代码如下:
#!/bin/bash
for dir in $( ls -d */)
do
echo “file: $file”
mv “$dir”/*.mp4 ./
rm -rf “$dir”
done
稍微解释下:
- ls -d */ 是输出目录而不输出文件
- $dir 是取具体的目录路径
- “$dir”加引号可以避免特殊符号比如 [ 的转义影响。
执行这几行代码,效果如下

文件都到一个目录下了,任务完成。
最后一个问题,如何在windows下执行这个shell脚本呢?个人觉得有3个方法
- 使用win10 linux子系统
- 使用git bash
- 使用powershell 7 是可以执行shell脚本的