如何在 bash 脚本中将文件夹拆分为子文件夹

如何在 bash 脚本中将文件夹拆分为子文件夹

我有一个文件夹每秒连续接收 *.DAT 文件。我想将该文件夹拆分为两个文件夹,其中父文件夹(我想拆分为两个的文件夹)文件夹将以循环方式移动它在这两个子文件夹中收到的所有 *.DAT 文件。有没有办法通过 bash 脚本来做到这一点?

答案1

有你的脚本:

#!/bin/bash
# enter the source dir
cd /tmp/a

# set initial subdir
subdir="b"

# run forever
while true
do
        # get first available *.DAT file
        newfile=`ls -1 *.DAT 2>/dev/null | head -n1`
        if [ "$newfile" != "" ]
        then
                # if the .DAT file exists, move it
                mv ./$newfile /tmp/$subdir/

                # replace subdir for next loop iteration
                if [ "$subdir" == "b" ]
                then
                        subdir="c"
                else
                        subdir="b"
                fi
        else
                # nothing found, wait 1 second
                sleep 1
        fi
done

我使用平面结构进行测试

/tmp/a # source dir
/tmp/b # destdir 1
/tmp/c # destdir 2

你必须根据你的情况修改它,但它应该有效。

相关内容