![如何运行自行更改文件夹的任务](https://linux22.com/image/72726/%E5%A6%82%E4%BD%95%E8%BF%90%E8%A1%8C%E8%87%AA%E8%A1%8C%E6%9B%B4%E6%94%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E4%BB%BB%E5%8A%A1.png)
我想运行 VCS(视频联系表),这是一个创建视频文件联系表(缩略图)的程序。
这是场景:我有一个名为的根文件夹温度。在里面,我还有许多其他以年份命名的文件夹:1991、1992、1993 等。年文件夹我还有其他带有视频标题的子文件夹。这是一个例子:
Temp --> This is a folder
|
|
1995 --> This is a folder
|
|
Vacation in Italy --> This is folder
|
|
Video 1.mp4
Video 2.mp4
Video 3.mp4
Video 4.mp4
Video 5.mp4
我的目标是:
- 创建一个名为的文件夹屏幕与视频处于同一级别。
- 使命令 vcs 从 Temp 启动,并在文件夹内制作我所有视频的缩略图屏幕。所有视频都是MP4。所有缩略图都是JPG。
制作视频缩略图的命令是:
vcs /home/user/Temp/1991/"Vacation in Italy"/"Video 1.mp4" -U0 -n 15 -c 3 -H 200 -a 300/200 -j
您知道如何使这一切自动化吗?
答案1
mp4
该脚本会迭代您拥有的文件集。它需要每个文件的绝对路径,以便vcs
可以可靠地找到视频文件。
for mp4 in ~/Temp/*/*/*.mp4
do
dir="$(dirname "$mp4")"
screen="$dir/Screen"
if test ! -d "$screen"
then
echo "Processing videos in $dir" >&2
mkdir -p "$screen"
fi
( cd "$screen" && vcs "$mp4" -U0 -n 15 -c 3 -H 200 -a 300/200 -j )
done
答案2
这应该有效:
#!/bin/bash
for fd in `cat "\`ls\`"`; do
cd ~/Temp/$fd
for sbfd in `cat "\`ls\`"`; do
mkdir ~/Temp/$fd/$sbfd/Screens;
cd ~/Temp/$fd/$sbfd/Screens;
vcs /home/user/Temp/$fd/$sbfd/*.mp4 -U0 -n 15 -c 3 -H 200 -a 300/200 -j;
done;
done;
如果它不起作用,请告诉我给出了什么(如果有)错误消息,我将尝试为您修补它。我无法在我的机器上测试它,但理论上我认为应该没问题。
顺便说一句,您需要将其另存为 shell 脚本,并且只有当 Temp 位于您的主目录中时它才有效。