在文件夹之间传输文件

时间:2013-11-15 07:44:00

标签: bash ubuntu sync samba

我需要一个此脚本的解决方案,将放入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[@]}

2 个答案:

答案 0 :(得分:1)

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

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

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

如果文件在准备好时都名为.jpg,则更容易:

 mv 8953-*/*.jpg /mnt/FOLDER

答案 1 :(得分: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