我想将总共 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