![특정 수의 정렬된 파일을 복사하는 방법은 무엇입니까? (예: 11GB)](https://linux55.com/image/112836/%ED%8A%B9%EC%A0%95%20%EC%88%98%EC%9D%98%20%EC%A0%95%EB%A0%AC%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%B3%B5%EC%82%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20(%EC%98%88%3A%2011GB).png)
.mp3
총 11GB의 파일(이 질문에 대한 모든 유형)을 폴더 ~/ABC/
에서 ~/DEF/
. 첫 번째 문서를 복사했습니다).
파일 이름에 공백 및/또는 , 및 등의 문자가 포함 &
되어 .
있습니다 /
.
지금까지 나는 주위를 둘러보았고 (다소) 관련 질문의 코드를 사용하는 것이 합리적이지 않은 것 같습니다(어쨌든 나는 좋은 판단자가 아닙니다).
어떻게 해야 하나요? :)
답변1
나는 이것을 수행하는 더 좋은 방법이 있다고 확신합니다. LIMIT는 복사할 양(KB)입니다.
#! /bin/bash
LIMIT='11534336'
size='0'
if [[ -e $1 && -d $2 ]];then
echo "copying contents from $1 to $2"
else
echo "Usage: $0 SOURCE DEST"
exit
fi
for i in $(ls -t $1); do
var="$(echo $(du -s $(realpath $1/$i)))"
IFS=" " read var1 var2 <<< "$var"
let "size += $var1"
if [[ $size -lt $LIMIT ]];then
echo "copying " $var2 "to $2"
cp -r $var2 $2
else
exit
fi
done