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

상황에 맞게 수정해야 하지만 제대로 작동할 것입니다.

관련 정보