gpt4 book ai didi

linux - bash如何将一个目录中的大量zip文件移动到指定数量的多个子目录中?

转载 作者:太空宇宙 更新时间:2023-11-04 10:37:35 25 4
gpt4 key购买 nike

在当前目录中有数百个 .zip 文件。此目录中还有六个子目录,名称分别为 0 到 5。.zip 文件需要均匀分布(或尽可能接近)并移动到这些子目录中。我不关心哪些文件最终位于哪些子目录中,只要它们分布均匀即可。

我如何尝试实现这一目标。我应该使用 maxdepth 并尝试查找子目录的数量然后递归放置文件还是我该怎么做?

最佳答案

这是一个快速但肮脏的解决方案:对于每个 zip 文件,将目标目录编号递增 1,然后将其移动到那里。

如果目标目录号码不再可用,请重置目标目录号码。

#!/usr/bin/env bash

declare -i i=0
for f in *.zip; do
mv ${f} ${i}/
i=$i+1
if [[ ! -d $i ]]; then
i=0
fi
done

现在请注意,这根本不是万无一失的,它会为每个文件生成一个单独的移动过程。如果你只需要这样做一次,我认为不值得为此花费更多的脑细胞。但是,如果您希望定期执行此操作,则应考虑可能会发生什么样的错误,以及如何发现它们,甚至可能考虑更有效的运动。

关于linux - bash如何将一个目录中的大量zip文件移动到指定数量的多个子目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733782/

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