매초마다 *.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
상황에 맞게 수정해야 하지만 제대로 작동할 것입니다.