gpt4 book ai didi

linux - 将大量文件分发到较小的组的脚本

转载 作者:可可西里 更新时间:2023-11-01 11:47:51 24 4
gpt4 key购买 nike

我的文件夹包含大量不同大小的文件(例如 1000 多个),我想将这些文件移动到更小的组中,例如每个文件夹 100 个文件。

我写了一个 Apple 脚本来计算文件数量,创建一个编号的子文件夹,然后将 100 个文件移动到新文件夹(可以指定文件数量),循环直到文件数量少于指定数量移动到它创建的最后一个文件夹。

问题是它运行得非常慢。我正在寻找可以在我的 MacBook 和/或 Linux 机器上运行的 Apple Script 或 shell 脚本,它们可以有效地将文件移动到更小的组中。

文件如何分组并不是特别重要,我只是希望每个文件夹中的文件更少。

最佳答案

这应该让你开始:

DIR=$1
BATCH_SIZE=$2
SUBFOLDER_NAME=$3
COUNTER=1

while [ `find $DIR -maxdepth 1 -type f| wc -l` -gt $BATCH_SIZE ] ; do
NEW_DIR=$DIR/${SUBFOLDER_NAME}${COUNTER}
mkdir $NEW_DIR
find $DIR -maxdepth 1 -type f | head -n $BATCH_SIZE | xargs -I {} mv {} $NEW_DIR
let COUNTER++
if [ `find $DIR -maxdepth 1 -type f| wc -l` -le $BATCH_SIZE ] ; then
mkdir $NEW_DIR
find $DIR -maxdepth 1 -type f | head -n $BATCH_SIZE | xargs -I {} mv {} $NEW_DIR
fi
done

嵌套的 if 语句获取最后剩余的文件。在修改以供使用后,您可以根据需要添加一些额外的检查。

关于linux - 将大量文件分发到较小的组的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4839576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com