여기에 약 40개의 작은 파일이 포함된 디렉터리가 있고 이를 파일 수에 따라 배포된 4개의 다른 디렉터리에 복사하려고 합니다.
다음은 40개의 파일을 디렉터리당 10개의 파일로 분할하여 수행해야 하는 작업의 예입니다. 다음 숫자 또는 분 표준을 따르며, 각 디렉터리에는 동일한 분의 타임스탬프가 있는 파일이 있습니다.
schwaiger@ffurtpc:/home/schwaiger/files/$ ll
total 40
drwxr-xr-x 2 schwaiger schwaiger 36864 out 19 12:19 ./
drwxr-xr-x 52 schwaiger schwaiger 4096 out 19 14:05 ../
-rw-r--r-- 1 schwaiger schwaiger 32229 out 19 09:18 00001-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:18 00002-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:18 00002-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32294 out 19 09:18 00004-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32267 out 19 09:18 00005-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32287 out 19 09:18 00006-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32294 out 19 09:18 00007-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32267 out 19 09:18 00008-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32287 out 19 09:18 00009-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32293 out 19 09:18 00010-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:17 00011-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:17 00012-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:17 00013-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:17 00014-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32308 out 19 09:17 00015-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32340 out 19 09:17 00016-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32308 out 19 09:17 00017-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32340 out 19 09:17 00018-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32329 out 19 09:17 00019-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32324 out 19 09:17 00020-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32300 out 19 09:20 00021-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32316 out 19 09:20 00022-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32315 out 19 09:20 00023-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32310 out 19 09:20 00024-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32319 out 19 09:20 00025-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32318 out 19 09:20 00026-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32341 out 19 09:20 00027-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32323 out 19 09:20 00028-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32341 out 19 09:20 00029-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32319 out 19 09:20 00030-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32350 out 19 09:22 00031-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32389 out 19 09:22 00032-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:22 00033-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:22 00034-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32318 out 19 09:22 00035-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32341 out 19 09:22 00036-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:22 00037-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:22 00038-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:22 00039-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:22 00040-capture.jpg
10개의 디렉토리에 배포되어야 합니다.
schwaiger@ffurtpc:/home/schwaiger/files/a01$ ll
total 10
drwxr-xr-x 2 schwaiger schwaiger 36864 out 19 12:19 ./
drwxr-xr-x 52 schwaiger schwaiger 4096 out 19 14:05 ../
-rw-r--r-- 1 schwaiger schwaiger 32229 out 19 09:18 00001-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:18 00002-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:18 00002-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32294 out 19 09:18 00004-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32267 out 19 09:18 00005-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32287 out 19 09:18 00006-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32294 out 19 09:18 00007-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32267 out 19 09:18 00008-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32287 out 19 09:18 00009-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32293 out 19 09:18 00010-capture.jpg
schwaiger@ffurtpc:/home/schwaiger/files/a02$ ll
total 10
drwxr-xr-x 2 schwaiger schwaiger 36864 out 19 12:19 ./
drwxr-xr-x 52 schwaiger schwaiger 4096 out 19 14:05 ../
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:17 00011-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:17 00012-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:17 00013-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:17 00014-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32308 out 19 09:17 00015-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32340 out 19 09:17 00016-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32308 out 19 09:17 00017-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32340 out 19 09:17 00018-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32329 out 19 09:17 00019-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32324 out 19 09:17 00020-capture.jpg
schwaiger@ffurtpc:/home/schwaiger/files/a03$ ll
total 10
drwxr-xr-x 2 schwaiger schwaiger 36864 out 19 12:19 ./
drwxr-xr-x 52 schwaiger schwaiger 4096 out 19 14:05 ../
-rw-r--r-- 1 schwaiger schwaiger 32300 out 19 09:20 00021-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32316 out 19 09:20 00022-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32315 out 19 09:20 00023-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32310 out 19 09:20 00024-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32319 out 19 09:20 00025-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32318 out 19 09:20 00026-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32341 out 19 09:20 00027-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32323 out 19 09:20 00028-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32341 out 19 09:20 00029-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32319 out 19 09:20 00030-capture.jpg
schwaiger@ffurtpc:/home/schwaiger/files/a04$ ll
total 10
drwxr-xr-x 2 schwaiger schwaiger 36864 out 19 12:19 ./
drwxr-xr-x 52 schwaiger schwaiger 4096 out 19 14:05 ../
-rw-r--r-- 1 schwaiger schwaiger 32350 out 19 09:22 00031-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32389 out 19 09:22 00032-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:22 00033-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:22 00034-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32318 out 19 09:22 00035-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32341 out 19 09:22 00036-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:22 00037-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32243 out 19 09:22 00038-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32289 out 19 09:22 00039-capture.jpg
-rw-r--r-- 1 schwaiger schwaiger 32298 out 19 09:22 00040-capture.jpg
awk
, 또는 을 sed
사용 하여 이를 어떻게 수행할 수 있습니까 ?egrep
bash
답변1
마음에 들지 않더라도 질문하기 전에 검색하지 않은 것이 분명하지만 이것이 해결책의 시작입니다.
for file in * ; do
dstdir=$(stat -c %X "${file}")
if [ ! -d "${dstdir}" ]; then
mkdir "${dstdir}"
fi
mv "${file}" "${dstdir}"
done
OP가 원래 질문을 완전히 변경한 이후 편집되었습니다.
i=0
dstdir=0
for file in *; do
if [[ "$((i++))" -gt 10 ]] ; then
dstdir=$((dstdir + 1))
fi
if [ ! -d "${dstdir}" ] ; then
mkdir ${dstdir}
fi
mv $file ${dstdir}/
done
기본 알고리즘. i
귀하의 필요에 맞게 테스트를 조정하십시오. 참고로 $(( ))
산술은 bash에서 수행됩니다(sh와 호환되는지 확실하지 않음).