-2

我需要此脚本的解决方案,以将将放入 8953-x 文件夹的文件移动到联合文件夹。放入 8953-x 文件夹的文件将自动移至联合文件夹/mnt/FOLDER

它将移动除包含 ! 的文件之外的所有文件 在他们的文件名中,例如picture.jpg.!sync. 以 .!sync 结尾的文件在服务器之间同步,使用 btsync 且不完整,它们应被忽略。同步结束后,文件输出会变成picture.jpg,然后我想把它传输到联合文件夹中。

#!/bin/bash

from_folders=(8953-10  8953-11  8953-12  8953-3  8953-4  8953-5  8953-6  8953-7  8953-8  8953-9)
${from_folders[@]}
4

2 回答 2

1

我相信这应该可行,但请在备份目录上进行测试。

shopt -s extglob; mv 8953-*/!(\!*) /mnt/FOLDER

这将打开模式匹配,然后将那些文件夹中不以感叹号开头的所有文件移动到目标文件夹。

如果所有文件都.jpg在准备好的时候命名,那就更容易了:

 mv 8953-*/*.jpg /mnt/FOLDER
于 2013-11-15T08:52:22.623 回答
0

这是一个改进的脚本:

#!/bin/bash

shopt -s extglob

from_folders=(8953-10  8953-11  8953-12  8953-3  8953-4  8953-5  8953-6  8953-7  8953-8  8953-9)
for folder in ${from_folders[@]}
do
echo mv $folder/!(\!*) /mnt/finished_fotograf
done
于 2013-11-19T13:13:23.097 回答