특정 수의 정렬된 파일을 복사하는 방법은 무엇입니까? (예: 11GB)

특정 수의 정렬된 파일을 복사하는 방법은 무엇입니까? (예: 11GB)

.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

관련 정보