特定の数のソートされたファイルをコピーする方法は? (例: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

関連情報