如何复制一定数量的排序文件? (例如 11 GB)

如何复制一定数量的排序文件? (例如 11 GB)

我想将总共 11 GB 的文件(.mp3针对此问题的所有类型)从文件夹复制~/ABC/~/DEF/.我喜欢对按 ABC 中上次编辑/修改日期降序排序的文件执行此操作(即,应首先复制最近修改的文件)。

文件名包含空格和/或字符,如&./等。

到目前为止,我已经环顾四周,使用(某种程度上)相关问题的代码看起来并不明智(无论如何我都不是一个好的法官)。

我该怎么办呢? :)

答案1

我确信有更好的方法来做到这一点。 LIMIT 是要复制的数量(以千字节为单位)。

#! /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

相关内容